Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не могу понять "and" и "&&"
Форумы портала PHP.SU » PHP » Программирование на PHP » Не могу понять "and" и "&&"

Страниц (1): [1]
 

1. shum0531 - 21 Марта, 2014 - 18:22:30 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $test1 = isset($_POST['test']) and !empty($_POST['test']) ? $_POST['test'] : 'test';
  2. $test2 = isset($_POST['test']) && !empty($_POST['test']) ? $_POST['test'] : 'test';
  3. var_dump( $test1 );
  4. var_dump( $test2 );
  5. //test1 = bool(true)
  6. //test2 = string(4) "test"
  7.  

Как это понимать?
php5,3(мод.апаче)
2. T1grOK - 21 Марта, 2014 - 18:37:05 - перейти к сообщению
Приоритет у && выше.
3. shum0531 - 21 Марта, 2014 - 18:40:52 - перейти к сообщению
T1grOK пишет:
Приоритет у && выше.

Ну и что? Почему при сравнении AND в переменную попадает TRUE, у меня присвоить либо пост-запрос, либо строку, третьего нет.
4. T1grOK - 21 Марта, 2014 - 18:43:09 - перейти к сообщению
Что значит ну и что? Не понял Порядок выполнения разный.
Ваш код можно представить следующим образом(скобки):
PHP:
скопировать код в буфер обмена
  1. $test1 = isset($_POST['test']) and (!empty($_POST['test']) ? $_POST['test'] : 'test');
  2. $test2 = (isset($_POST['test']) && !empty($_POST['test'])) ? $_POST['test'] : 'test';

Вот так выполняется ваш код.
5. shum0531 - 21 Марта, 2014 - 18:50:11 - перейти к сообщению
T1grOK пишет:
Что значит ну и что? Не понял Порядок выполнения разный.
Ваш код можно представить следующим образом(скобки):
PHP:
скопировать код в буфер обмена
  1. $test1 = isset($_POST['test']) and (!empty($_POST['test']) ? $_POST['test'] : 'test');
  2. $test2 = (isset($_POST['test']) && !empty($_POST['test'])) ? $_POST['test'] : 'test';

Вот так выполняется ваш код.


Здорово closed

 

Powered by ExBB FM 1.0 RC1