Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Оператор if()
 
 автор: starpom   (06.08.2010 в 15:48)   письмо автору
 
 

Не могу понять смысл такого скрипта:

if ($a = $b , true) {
    echo $a;                                 // $a до того не объявлялась
                      }


Что в такой конструкции дает нам true, и как мы сравниваем $a и $b если $a не определена?

  Ответить  
 
 автор: psychomc   (06.08.2010 в 15:58)   письмо автору
 
   для: starpom   (06.08.2010 в 15:48)
 

так там же $a не сравнивается
переменной $a присваивается значение переменной $b

  Ответить  
 
 автор: starpom   (06.08.2010 в 16:09)   письмо автору
 
   для: psychomc   (06.08.2010 в 15:58)
 

а true зачем ?
По коду $b результат работы функции, так имеется в виду, что если функция сработала нормально и операция присвоения прошла успешно, то дальше работаем с $a?

  Ответить  
 
 автор: psychomc   (06.08.2010 в 17:28)   письмо автору
 
   для: starpom   (06.08.2010 в 16:09)
 

никогда не пользовался такой конструкцией.
могу предположить, не если операция прошла успешно, а если результат операции (т.е то что в $a) равно true то...

у меня интерпретатор выдает ошибку разбора на это выражение

  Ответить  
 
 автор: sim5   (06.08.2010 в 17:35)   письмо автору
 
   для: starpom   (06.08.2010 в 15:48)
 

А вы выполняли сей скрипт?

  Ответить  
 
 автор: starpom   (06.08.2010 в 17:53)   письмо автору
 
   для: sim5   (06.08.2010 в 17:35)
 

А вы выполняли сей скрипт?

Он являеться частью скрипта по активации аккаунта в достаточно сложной (для меня)
системе авторизации пользователей (скорее всего он связан с отсылкой юзеру на почту письма и дальнейших процедур) поэтому на локальном хосте я даже не знаю как его проверить -> не выполнял.

  Ответить  
 
 автор: sim5   (06.08.2010 в 18:04)   письмо автору
 
   для: starpom   (06.08.2010 в 17:53)
 

А вы попробуйте выполнить только такую строку:
if($a=$b, true) echo $a;

Чтобы распробовать суп совсем не обязательно съесть всю кастрюлю.

  Ответить  
 
 автор: starpom   (06.08.2010 в 18:37)   письмо автору
 
   для: sim5   (06.08.2010 в 18:04)
 

Опять невнимательность, реально конструкция такая:

if($a = f($b, true))
echo $a;


После тупилова рискну все-таки еще спросить касательно этой же махинации
это полная схема (и вроде как без ошибок):

function my($a, $b = false) 
 // что делает $b = false (почему именно так задаеться параметр) 
    {
                if(!$b)                                                 
            $c = 'hello'; }  


А дальше в такую функцию закидываеться славноизвестный true.

if ($h = my($n , true)) {
// И что будет если мы вместо него закинем true
   echo $h;
 }

  Ответить  
 
 автор: sim5   (06.08.2010 в 18:44)   письмо автору
 
   для: starpom   (06.08.2010 в 18:37)
 

Во-первых, если объявлена функция с именем my, тогда должно быть:
if($a = my($b, true))...

Что касаемо функции и объявления в ней $b = false, то это означает, что второй аргумент ее по умолчанию принимает значение false. Ну а сама функция при этом присваивает значение перменной $c, следовательно, если передать в функцию вторым аргументом true, то.... ?

  Ответить  
 
 автор: starpom   (06.08.2010 в 19:24)   письмо автору
 
   для: sim5   (06.08.2010 в 18:44)
 

То значение $c она не присвоит, но выполнит дальнейшие действия (если таковые имеються) и вернет уже что-то немного другое , чем по умолчанию.
Кто поучавствовал, все спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования