Я видел некоторые заявления PHP, которые идут что-то вроде
if($variable) {} or if(function()) {} (if statements that don't compare two variables)
и я знаю, что они грубо говоря, если функция выполняется или существует эта переменная, но я не могу найти никакой информации о том, как они работают. Может ли кто-нибудь пролить свет на это?
if(function()) {}
означает, что возвращаемое значение функции функции истинно или истинно, как тогда будет выполняться блок.
Из руководства по PHP :
if (expr)
Как описано в разделе о выражениях, выражение оценивается по его логическому значению. Если выражение оценивается как TRUE, PHP выполнит оператор, и если он будет оценивать FALSE, он проигнорирует его.
Итак, если функция успешно выполняется (true) или существует переменная (true), оператор if будет продолжен. В противном случае он будет проигнорирован.
Операторы if определяют, истинна ли данная переменная, или заданная функция возвращает true. Переменная считается «истиной», если она не является нулевой, ложной, 0 или (возможно) пустой строкой.
Если переменная равна числу, которое не равно нулю, это считается истинным. а также, как если бы функция возвращала логическое значение (true или false) или положительное / отрицательное число.
Когда PHP вычисляет утверждения if, он определяет, истинно ли содержимое. Он считает, что ничего, кроме 0, является истинным, а 0 – ложным. Это означает, что вы можете поместить туда функцию, которая возвращает что-либо, и на основе этого будет определять, следует ли выполнять содержимое блока if.
что-то, что может помочь. Вероятно, вы думаете о чем-то вроде if ($ variable <10) или if ($ variable == 'some value'). Точно так же, как +, -, /, * и% – это операторы. 1 + 3 возвращает значение 4, которое используется в остальной части стандартного оператора. 1 <3 возвращает значение false, которое используется в остальной части инструкции. if-method принимает логический параметр и выполняет код, если этот логический параметр равен true.
заметить, что:
if (1 < 3) { ... }
такой же как
$myComparison = 1 < 3; if ($myComparison) { ... }