例如,我可以:
if ($my_array = wp_get_category($id)) { echo "asdf"; } else { echo "1234"; }
如果函数没有返回任何值,我想进入else语句。
xmq68pz91#
是的,那会起作用,而且这个模式经常被使用。如果为$my_array指定了 * truthy * 值,则将满足条件。CodePad.
$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"; }
反之亦然......如果函数没有返回任何值,我想进入else语句。不返回任何值的函数将返回NULL,即 * falsey *。CodePad.
NULL
<?php function wp_get_category($id) { } if ($my_array = wp_get_category($id)) { echo $my_array; } else { echo "1234"; }
2nc8po8w2#
这实际上是一种常见的模式,并且可以正常工作。但是,您可能需要在将其用于更复杂的情况时三思而行,或者根本不使用它。想象一下,如果维护您代码的人走沿着看到
if ($x = one() || $y = two() && $z = three() or four()) { }
在条件中使用变量之前声明变量可能会更好。
brccelvz3#
你可能会想要这样的东西
if (!is_null($my_array = wp_get_category($id)) { echo "asdf"; else echo "1234";
假设函数在失败时返回null,您可能需要对它进行一些调整。
im9ewurl4#
我发现这对声明一个变量然后在同一语句的后续条件中立即使用它的规则感到疑惑。感谢之前的codepad链接的答案,我自己做了一个来测试这个理论。它起作用了。http://codepad.org/xTwzTwGR
wfauudbj5#
以下是定义任何变量(具有安全性)的另一种方法:
$my_array = ($my_array = $wp_get_category($id)) ?: /* else statement here */;
yruzcnhs6#
我总是觉得这个原则令人困惑,因为它似乎从来没有为我工作!if ($pid = $arr['Key']){这可能会抛出一个错误Undefined index: Key。同样,我得到了相同的结果:if (!empty($pid = $arr['Key']))现在PHP7+的解决方案如下:if ($pid = $arr['Key'] ?? false)这将允许使用空值设置$pid = false;的数组,并且不触发IF语句。我希望这能帮助一些人,因为数组扔给我,但双聚结是超级有帮助的,可以用在if的概念。
if ($pid = $arr['Key']){
Undefined index: Key
if (!empty($pid = $arr['Key']))
if ($pid = $arr['Key'] ?? false)
$pid = false;
if
6条答案
按热度按时间xmq68pz91#
是的,那会起作用,而且这个模式经常被使用。
如果为
$my_array
指定了 * truthy * 值,则将满足条件。CodePad.
反之亦然......
如果函数没有返回任何值,我想进入else语句。
不返回任何值的函数将返回
NULL
,即 * falsey *。CodePad.
2nc8po8w2#
这实际上是一种常见的模式,并且可以正常工作。但是,您可能需要在将其用于更复杂的情况时三思而行,或者根本不使用它。想象一下,如果维护您代码的人走沿着看到
在条件中使用变量之前声明变量可能会更好。
brccelvz3#
你可能会想要这样的东西
假设函数在失败时返回null,您可能需要对它进行一些调整。
im9ewurl4#
我发现这对声明一个变量然后在同一语句的后续条件中立即使用它的规则感到疑惑。
感谢之前的codepad链接的答案,我自己做了一个来测试这个理论。它起作用了。
http://codepad.org/xTwzTwGR
wfauudbj5#
以下是定义任何变量(具有安全性)的另一种方法:
yruzcnhs6#
我总是觉得这个原则令人困惑,因为它似乎从来没有为我工作!
if ($pid = $arr['Key']){
这可能会抛出一个错误
Undefined index: Key
。同样,我得到了相同的结果:if (!empty($pid = $arr['Key']))
现在PHP7+的解决方案如下:
if ($pid = $arr['Key'] ?? false)
这将允许使用空值设置
$pid = false;
的数组,并且不触发IF语句。我希望这能帮助一些人,因为数组扔给我,但双聚结是超级有帮助的,可以用在
if
的概念。