PHP логическое ИСТИНА / ЛОЖЬ? - PullRequest
8 голосов
/ 07 декабря 2009

Я не могу понять это.

Если я наберу:

function myfunction(){
    ......
    if ...
        return TRUE;
    if ...
        return FALSE;
}

Почему я не могу использовать это так:

$result = myfunction();
if ($result == TRUE)
...
if ($result == FALSE)
...

Или я должен использовать:

$result = myfunction();
if ($result == 1)
...
if ($result == 0)
...

Или это:

$result = myfunction();
if ($result)
...
if (!$result)
...

Ответы [ 5 ]

19 голосов
/ 07 декабря 2009

Я не до конца понимаю ваш вопрос, но вы можете использовать любой из приведенных вами примеров со следующими предостережениями:

Если вы скажете if (a == TRUE) (или, поскольку сравнение с true является избыточным, просто if (a)), вы должны понимать, что PHP оценит несколько вещей как истинные: 1, 2, 987, "привет" так далее.; Все они «истинные» ценности. Это редко проблема, но вы должны это понять.

Однако, если функция может возвращать больше, чем true или false, вас может заинтересовать использование ===. === сравнивает тип переменных: "a" == true равно true, но "a" === true неверно.

6 голосов
/ 18 марта 2013

Если вам больше не нужно использовать переменную результата $ result, я бы сделал следующую самую короткую версию:

if (myfunction()) {
    // something when true
} else {
    // something else when false
}
5 голосов
/ 07 декабря 2009

Вы могли бы сделать так

$result = myfunction();
if ($result === TRUE)
...
if ($result === FALSE)
...
3 голосов
/ 07 декабря 2009

Вы можете использовать if($result == TRUE), но это перебор, так как if($result) достаточно.

0 голосов
/ 07 декабря 2009
if($variable) 
//something when truw
else 
//something else when false

Помните, что значение -1 считается ИСТИННЫМ, как и любое другое ненулевое (отрицательное или положительное) число. FALSE будет 0 obv ...

...