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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не могу понять "and" и "&&"

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
shum0531
Отправлено: 21 Марта, 2014 - 18:22:30
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




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(мод.апаче)
 
 Top
T1grOK
Отправлено: 21 Марта, 2014 - 18:37:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013  


Помог: 7 раз(а)




Приоритет у && выше.


-----
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
 
 Top
shum0531
Отправлено: 21 Марта, 2014 - 18:40:52
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




T1grOK пишет:
Приоритет у && выше.

Ну и что? Почему при сравнении AND в переменную попадает TRUE, у меня присвоить либо пост-запрос, либо строку, третьего нет.
 
 Top
T1grOK
Отправлено: 21 Марта, 2014 - 18:43:09
Post Id



Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013  


Помог: 7 раз(а)




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

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

(Отредактировано автором: 21 Марта, 2014 - 18:44:19)



-----
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
 
 Top
shum0531
Отправлено: 21 Марта, 2014 - 18:50:11
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




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
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB