[英]Can I define a variable in a PHP if condition?
例如,我可以这样做:
if ($my_array = wp_get_category($id)) {
echo "asdf";
} else {
echo "1234";
}
如果function什么都没有返回,我想把go放到else语句中。
是的,这行得通,而且这种模式经常被使用。
如果$my_array
被分配了一个真值,那么条件将被满足。
键盘。
<?php
function wp_get_category($id) {
return 'I am truthy!';
}
if ($my_array = wp_get_category($id)) {
echo $my_array;
} else {
echo "1234";
}
反之亦然……
如果 function 没有返回任何内容,我想将 go 放入 else 语句中。
不返回任何内容的 function 将返回NULL
,这是错误的。
键盘。
<?php
function wp_get_category($id) {
}
if ($my_array = wp_get_category($id)) {
echo $my_array;
} else {
echo "1234";
}
这实际上是一种常见的模式,并且会起作用。 但是,您可能需要三思而后行,将其用于更复杂的情况,或者根本不使用。 想象一下,如果有人维护您的代码并看到
if ($x = one() || $y = two() && $z = three() or four()) {
}
在条件中使用它们之前声明变量可能会更好。
你可能想要这样的东西:
if (!is_null($my_array = wp_get_category($id)) {
echo "asdf";
else
echo "1234";
假设 function 在失败时返回 null。 你可能需要稍微调整一下。
以下是定义任何变量(安全)的另一种选择:
$my_array = ($my_array = $wp_get_category($id)) ?: /* else statement here */;
我总是发现这个原则令人困惑,因为它似乎对我来说从来没有用过:采用以下代码:
if ($pid = $arr['Key']){
这可能会引发错误Undefined index: Key
。 同样,我得到了相同的结果:
if (!empty($pid = $arr['Key']))
现在用PHP7+的解决方法如下:
if ($pid = $arr['Key']?? false)
这将允许具有空值设置的数组$pid = false;
并且不触发 IF 语句。
我希望这能帮助别人,因为 arrays 把我扔了,但是双合并非常有用,可以在if
概念中使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.