|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
|
maxipub |
|
||||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Добрый день!
Я знаю про приоритеты операторов http://php.net/manual/ru/language.operators.precedence.php Вопрос немного в другом. Приоритеты это как бы группировка. Как писали в комментарии http://php.net/manual/ru/language.operators.precedence.php :
А мой вопрос о том, проверка выполняется слева направо по порядку, т.е. в первом случае сначала "(a and b)", если false то только потом "or c", если true - то "or c" не проверяется, условие уже выполнено. А во втором случае сначала "a", если true, тогда "and (b or c)", если false - то "and (b or c)" не проверяется, т.к. условие уже не выполнимо. Такая логика или как? Я делал тесты на PHP5.3 - по тестам все вроде так. Слева направо, если условие уже выполнено или уже не выполнимо - дальше ничего не проверяется. Но на деле всегда так или есть нюансы? Так же интересует поведение в PHP7.1 Для примера, можно ли делать так:
? Меня волнует чтоб file_exist не начал проверяться до $file_name = $db->result(), иначе по очевидным причинам оператор if будет возвращать false. Или лучше разбивать на два оператора if? Лишние строки... |
||||
|
|||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 6 Всего: 12 |
Взаимоисключающие. Чтобы не "волноваться" заключайте в скобки. А так судя по вашей же ссылке $file_name будет равен boolean выражению "$db->result() && file_exist(ROOT_DIR.$file_name)" Чтобы произошло то что вам нужно - "if ( ( $file_name = $db->result() ) && file_exist(ROOT_DIR.$file_name))" |
|||
|
||||
maxipub |
|
|||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
_zorn_, спасибо, но вопрос не о том. Ладно, так понял, слева направо всегда.
|
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 6 Всего: 12 |
||||
|
||||
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |