Функция PHP возвращает false && true && false? - PullRequest
0 голосов
/ 28 июня 2018

Обновляя PrestaShop 1.6 до 1.7, я обнаружил изменение в том, как разработчики возвращают метод установки модуля. Очевидно, что как для старого, так и для нового способа вы хотите вернуть true, если ALL в порядке, и false 1,6

public function install() {
    if(!$this->someFunction() || !parent::install()) 
        return false;
    return true;
}

Иногда наоборот:

public function install() {
    if($this->someFunction() && parent::install()) 
        return true;
    return false;
}

Но теперь в 1.7 они делают это таким образом, и я не могу понять, как это вообще работает:

public function install() {
    return parent::install()
        && $this->someFunction();
}

Как функция может вернуть ЭТО и ЭТО? Если бы я угадал, я бы подумал, что он либо возвращает первое ИСТИНА / ЛОЖЬ, а затем завершает работу, ИЛИ возвращает сумму их обоих (но тогда только ЛОЖЬ && ЛОЖЬ вернет ЛОЖЬ)

Пожалуйста, помогите мне понять это.

1 Ответ

0 голосов
/ 28 июня 2018

return this && that читается как return (this && that). this и that будут оцениваться как boolean. Если оба значения true, то оно становится return (true && true). true && true оценивается как true. Итак, оно становится return true.

Это Булева алгебра в кодовой форме.

...