【发布时间】:2015-07-16 02:21:24
【问题描述】:
基本上我想避免做这样的事情:
if((isset($var_1) && !empty($var_1)) || (isset($var_2) && !empty($var_2)) ...) { ....
所以我创建了一个函数来尝试解决它:
function set($item) {
return (isset($item) && !empty($item));
}
传入未设置的变量时,例如:
$args = ['derp'];
if(set($args[0]) || $args[1]) {....
我收到一条抛出的通知,指出未设置 "Offset 1,但是当我将函数更改为通过引用记下 $item 时,它会删除 PHP 通知:
function set(&$item) {
return (isset($item) && !empty($item));
}
Here is a demo
我的问题是 - 这是如何工作的?是因为它引用了原始的$args 数组吗?我要疯了吗?
【问题讨论】:
-
你可以使用
empty(),它测试变量是否自动设置。 -
@Barmar 我本来打算这样做,但不幸的是我陷入了 “这样做时你必须以这种方式编码,我们不会给你任何让步”
-
您可以将多个参数传递给
isset(),这可能会帮助您减少一点
标签: php pass-by-reference