当检查未定义的对象属性时,组合isset和is_null失败
||
我正在尝试将
isset
和is_null
合并到一个函数中以便于使用
我的方法:
class sys {
public static function is_null(&$variable) {
// if it\'s not set
if (!isset($variable)) {
return true;
}
// if array
if (is_array($variable)) {
return (boolean) (count($variable) < 1);
}
// if string
return (boolean) (strlen($variable) < 1);
}
}
我在对象中使用它时遇到的问题是以下异常:
ErrorException [注意]:重载属性xxx的间接修改无效。
没有找到相关结果
已邀请:
2 个回复
傻寺俊擒
。这么难吗? 建立这样的函数时,您需要意识到的是
不是函数。这是一种语言构造。因此,您不能将变量传递给函数,然后在该变量上调用isset(嗯,至少没有产生通知)。 其次,不需要在:
中强制转换为布尔值。与ѭ6完全相同。 第三,没有理由to7ѭ或使用
,因为that9ѭ正是要检查的内容。 第四,根本没有理由通过引用传递论点。它不会更改任何内容,并且会在没有理由的情况下不必要地创建引用。只需将参数视为正常值即可(由于写入时复制,它不会使用更多的内存)。 总而言之,我建议不要使用这种“帮助器”功能。如果要检查是否为空,只需使用
。它更清晰,更具语义意义,并且坦率地说,这并非重复工作。如果您不在乎通知,您可以将整个通话替换为ѭ11... 但是,如果您确实使用这种功能,则建议您更改名称。即使变量不是
,它也会返回
,因此调用函数
会导致误导。也许15英镑会更好...
攫怂绵十