Php isset()和NOT运算符
我知道这样的问题。有很多答案都很好 我知道这在PHPPhp isset()和NOT运算符,php,Php,我知道这样的问题。有很多答案都很好 我知道这在PHP5.5.x中是“固定”的,但不幸的是我使用的是5.3.x $iHatePHP = $node->get($key); if (isset($node->get($key)) ... 我得到的错误是: 致命错误:无法在…中的写入上下文中使用方法返回值。 我知道“修复”是将get()的结果放入一个变量中,然后调用isset()。然而,为了避免在我的代码中编写数千次,它是等效的还是我遗漏了一些案例 $iHatePHP = $node-&
5.5.x
中是“固定”的,但不幸的是我使用的是5.3.x
$iHatePHP = $node->get($key);
if (isset($node->get($key)) ...
我得到的错误是:
致命错误:无法在…中的写入上下文中使用方法返回值。
我知道“修复”是将get()
的结果放入一个变量中,然后调用isset()
。然而,为了避免在我的代码中编写数千次,它是等效的还是我遗漏了一些案例
$iHatePHP = $node->get($key);
if (!($node->get($key)) ...
编辑:I控制get()
。因此,我可以让它返回我喜欢的任何内容,例如NULL
、FALSE
或“
”,检查的不是将转换为FALSE
的变量,而是NULL
的变量。此外,它还检查变量或数组键是否存在;一个不存在的变量无论如何都是null
,但如果您输入了错误的名称或类似内容,它也会发出通知
当您测试函数或方法调用的结果时,您知道有一些返回值(没有return
语句的函数,或者没有值的普通return;
正在返回null
),因此“没有这样的变量”的额外情况是不可能的。因此,测试该值的最简单方法是:
如果$node->get($key)
返回false
、0
或'
,则由于以下原因,代码>版本将输入if
语句
类似的计算结果就像您应用了
运算符,但保留不存在变量的特殊行为-empty($foo)
实际上与相同!isset($foo)| |!(bool)$foo
如果(!isset($node->get($key))
是关于not操作符还是关于调用函数返回值上的isset的问题,请尝试。@Boann我应该写if(!isset($node->get($key))。对不起。是的,我的问题是关于调用函数返回值上的isset()。
if ( is_null($node->get($key)) ) ...