我可以在PHP if条件中定义变量吗?

Cas*_*sey 33 php if-statement

例如,我可以这样做:

if ($my_array = wp_get_category($id)) {
    echo "asdf";
} else {
    echo "1234";
}
Run Code Online (Sandbox Code Playgroud)

如果函数没有返回任何内容,我想进入else语句.

ale*_*lex 52

是的,这将起作用,并且经常使用该模式.

如果$my_array被赋予值,那么将满足条件.

CodePad.

<?php

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

if ($my_array = wp_get_category($id)) {
    echo $my_array;
} else {
    echo "1234";
}
Run Code Online (Sandbox Code Playgroud)

反之亦然......

如果函数没有返回任何内容,我想进入else语句.

不返回任何内容的函数将返回NULL,这是假的.

CodePad.

<?php

function wp_get_category($id) {
}

if ($my_array = wp_get_category($id)) {
    echo $my_array;
} else {
    echo "1234";
}
Run Code Online (Sandbox Code Playgroud)

  • 同样重要的是,变量可以在if ... http://codepad.org/Bog9U9kL的范围之外使用 (6认同)

Exp*_*lls 5

这实际上是一种常见的模式并且会起作用。但是,对于更复杂的情况,您可能要三思而后行,或者根本不考虑。想象一下,如果有人维护您的代码出现并看到

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

}
Run Code Online (Sandbox Code Playgroud)

在条件中使用变量之前先声明变量可能会更好。