Подтвердить что ты не робот

Могу ли я определить переменную в условии PHP if?

Например, могу ли я сделать:

if ($my_array = wp_get_category($id)) {
    echo "asdf";
} else {
    echo "1234";
}

Если ничего не возвращается функцией, я хочу перейти в оператор else.

4b9b3361

Ответ 1

Да, это будет работать, и шаблон используется довольно часто.

Если $my_array присваивается истинное значение, то условие wil должно быть выполнено.

CodePad.

<?php

function wp_get_category($id) {
   return 'I am truthy!';
}

if ($my_array = wp_get_category($id)) {
    echo $my_array;
} else {
    echo "1234";
}

Обратное также верно...

Если ничего не возвращается функцией, я хочу перейти в оператор else.

Функция, которая ничего не возвращает, вернет NULL, которая ложна.

CodePad.

<?php

function wp_get_category($id) {
}

if ($my_array = wp_get_category($id)) {
    echo $my_array;
} else {
    echo "1234";
}

Ответ 2

вам может понадобиться что-то вроде этого:

if (!is_null($my_array = wp_get_category($id)) {
    echo "asdf";
else
    echo "1234";

Предполагая, что функция возвращает null при ошибке. Возможно, вам придется немного подкорректировать его.

Ответ 3

Это на самом деле обычная модель и будет работать. Однако вы можете подумать дважды об использовании его для более сложных случаев или вообще. Представьте себе, если кто-то поддерживает ваш код и видит

if ($x = one() || $y = two() && $z = three() or four()) {

}

Лучше объявить переменные перед их использованием в условном выражении.

Ответ 4

Я понял, что это интересно о правилах объявления переменной, а затем сразу же использовать ее в последующих условиях в том же самом заявлении.

Благодаря предыдущему ответу на ссылку кододела, я сделал свой собственный, чтобы проверить теорию. Предупреждение о спойлере: он работает.

http://codepad.org/xTwzTwGR