powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопрос про условия
18 сообщений из 18, страница 1 из 1
Вопрос про условия
    #38859605
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
function a() {
    echo 'a';
    return true;
}

function b() {
    echo 'b';
    return true;

}

function c() {
    echo 'c';
    return true;
}

a() || b() AND c();



Почему выводит ac ?
...
Рейтинг: 0 / 0
Вопрос про условия
    #38859619
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

наверное потому что это аналог
Код: php
1.
( a() || b() ) AND c();


или в чем вопрос?
...
Рейтинг: 0 / 0
Вопрос про условия
    #38859652
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для коллекции
($a == true AND $b == true) != (($a == $b) == true)
...
Рейтинг: 0 / 0
Вопрос про условия
    #38859657
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SmeL_mdдля коллекции
($a == true AND $b == true) != (($a == $b) == true)
если объявить заранее $a и $b, то неравенство перестает срабатывать.
а если необъявлять, то уитывая что они имеют значение NULL, все вроде логично.
...
Рейтинг: 0 / 0
Вопрос про условия
    #38859680
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uSmeL_mdдля коллекции
($a == true AND $b == true) != (($a == $b) == true)
если объявить заранее $a и $b, то неравенство перестает срабатывать.
а если необъявлять, то уитывая что они имеют значение NULL, все вроде логично.если более точно сказать то в выражении (($a == $b) == true ), ни на что не влияет просто дает полет для фантазии и возможно не правильно трактовки
...
Рейтинг: 0 / 0
Вопрос про условия
    #38859747
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettПочему выводит ac ?
a() возвращает true и проверять что в b() не имеет смысла, один фиг true будет, вроде так работает ||
...
Рейтинг: 0 / 0
Вопрос про условия
    #38859795
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу вспомнилось
Код: php
1.
fopen($f) or die()
...
Рейтинг: 0 / 0
Вопрос про условия
    #38860118
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я чего-то с приоритетами напутал, всегда считал что AND имеет больший приоритет чем &&, щас доку открыл, оказалось наоборот. Тогда лан, выражение в первом посте понятно почему так работает, тогда почему

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
function a() {
    echo 'a';
    return true;
}

function b() {
    echo 'b';
    return true;

}

function c() {
    echo 'c';
    return true;
}

a() OR b() && c();



Выполняет a() сначала ?
...
Рейтинг: 0 / 0
Вопрос про условия
    #38860143
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможно теперь это аналог
Код: php
1.
a() OR ( b() && c() )

и наверно только a выведет, завтра проверю :)
...
Рейтинг: 0 / 0
Вопрос про условия
    #38860190
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да выводит только a(). Походу там хитро все обрабатывается, что если слева от ИЛИ единица, то остальное выполнять и не надо)
...
Рейтинг: 0 / 0
Вопрос про условия
    #38860437
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если сделать a() and b() and c() and d() будет выполнять слева на право пока не встретит false
если сделать a() or b() or c() or d() будет выполнять слева на право до первого true
если все and заменить на && логика не изменится

a() || b() && c() && d() => a
a() || b() AND c() && d() => acd
...
Рейтинг: 0 / 0
Вопрос про условия
    #38861099
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnoguда выводит только a(). Походу там хитро все обрабатывается, что если слева от ИЛИ единица, то остальное выполнять и не надо)

Это не хитрость, а нормальная логика. Нет никакого смысла проверять выражение до конца, с момента когда стал доподлинно известен результат. Это же не бинарное сложение-вычитание, а сравнение. Не равно - досвидос, равно - превед.
...
Рейтинг: 0 / 0
Вопрос про условия
    #38861104
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы типовая конструкция

if(isset($foo['bar']) && ($foo['bar']=='baz'))

проверялась до конца, она была бы невозможна. Если не isset, то во второй части - error. А так оно покидает опасный участок на подходе если что.
...
Рейтинг: 0 / 0
Вопрос про условия
    #38861250
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnoguда выводит только a(). Походу там хитро все обрабатывается, что если слева от ИЛИ единица, то остальное выполнять и не надо)

либо не встречал, либо забыл - польская запись выражений.
...
Рейтинг: 0 / 0
Вопрос про условия
    #38861251
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453,

alex564657498765453польская запись выражений

Она-то тут причем? Такэ - абы шо ляпнуть
...
Рейтинг: 0 / 0
Вопрос про условия
    #38861304
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

SharuPoNemnoguПоходу там хитро все обрабатывается, что если слева от ИЛИ единица, то остальное выполнять и не надо)

Это вам, #@$#@, не "походу там хитро", это на$#@ логика . Ее надо было в школе учить... Из пыхапистов, правда, в школу мало кто ходил
...
Рейтинг: 0 / 0
Вопрос про условия
    #38861392
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikkiMousealex564657498765453,

alex564657498765453польская запись выражений

Она-то тут причем? Такэ - абы шо ляпнуть

при проведении подобного рода вычислений, в польской записи бы получилось

ИЛИ а (И б с)
пртитом что ветка в скобках может быть очень длинной.

это сразу очевидно, что даже пытаться её вычислить не надо, если а уже ИСТИНА

и тогда бы не казалась логика странной
...
Рейтинг: 0 / 0
Вопрос про условия
    #38861397
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
впрнинципе, тоже можно было бы и для выражений

0*(....) делать, но в языках программирования принято - только выражения с булевым типом вычисляются оптимально, остальные все полностью.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопрос про условия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]