例如,我可以这样做:
if ($my_array = wp_get_category($id)) {
echo "asdf";
} else {
echo "1234";
}
如果函数没有返回任何内容,我想进入else语句。
答案 0 :(得分:50)
是的,这样可行,并且经常使用该模式。
如果为$my_array
分配了 truthy 值,则会满足条件。
<?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
,即 falsey 。
<?php
function wp_get_category($id) {
}
if ($my_array = wp_get_category($id)) {
echo $my_array;
} else {
echo "1234";
}
答案 1 :(得分:4)
这实际上是一种常见的模式,可行。但是,您可能需要三思而后行,将其用于更复杂的案例,或者根本不用。想象一下,如果有人维护您的代码并且看到了
if ($x = one() || $y = two() && $z = three() or four()) {
}
在条件中使用它们之前声明变量可能更好。
答案 2 :(得分:3)
if (!is_null($my_array = wp_get_category($id)) {
echo "asdf";
else
echo "1234";
假设函数在失败时返回null。您可能需要稍微调整一下。
答案 3 :(得分:2)
答案 4 :(得分:1)
以下是定义任何变量(具有安全性)的另一种选择:
$my_array = ($my_array = $wp_get_category($id)) ?: /* else statement here */;