Как действительно “делает что-то ИЛИ УМИРАЕТ ()” работа в PHP?

function compare(propName) {
    return function(a,b) {
        if (a[propName] < b[propName])
            return -1;
        if (a[propName] > b[propName])
            return 1;
        return 0;
    };
}

objs.sort(compare("last_nom"));
96
задан dreftymac 11 January 2009 в 07:08
поделиться

4 ответа

Если первый оператор возвращается true, то весь оператор должен быть true поэтому, вторая часть никогда не выполняется.

, Например:

$x = 5;
true or $x++;
echo $x;  // 5

false or $x++;
echo $x; // 6

Поэтому, если Ваш запрос неудачен, он оценит die() оператор и закончит сценарий.

130
ответ дан Community 5 November 2019 в 12:46
поделиться

Это работает, как другие описали.

В PHP, не используйте, "умирают", поскольку он НЕ повышает исключение (как он делает в Perl). Вместо этого выдайте исключение правильно нормальным способом.

умирают, не может быть пойман в PHP и не регистрируется - вместо этого он печатает сообщение неизящно и сразу выходит из сценария, не говоря никому, кого что-либо или давая Вам любую возможность записать событие, повторяет и т.д.

11
ответ дан MarkR 5 November 2019 в 12:46
поделиться

PHP's or работы как C || (который случайно также поддерживается PHP - or просто более хорошие взгляды и имеет другой приоритет оператора - см. эта страница ).

Это известно как короткое замыкание оператор, потому что это пропустит любые оценки, после того как это имеет достаточно информации для решения окончательного значения.

В Вашем примере, если mysql_connect() возвраты ПРАВДА, то PHP уже знает, что целый оператор оценит к TRUE независимо от того, что die() не оценен evalutes к, и следовательно die().

, Если mysql_connect() возвращает FALSE, PHP не знает, оценит ли целый оператор к TRUE ИЛИ FALSE, таким образом, он пойдет и пробует к evalute die() - окончание сценария в процессе.

Это - просто хороший прием, который использует в своих интересах путь or работы.

32
ответ дан Artelius 5 November 2019 в 12:46
поделиться
$con=mysql_connect($host, $user, $pass)
if(!$con)
{
     die("could not connect");
}
else
{
     echo "Connected";
}
-1
ответ дан 24 November 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: