Php isset()和NOT运算符

Php isset()和NOT运算符,php,Php,我知道这样的问题。有很多答案都很好 我知道这在PHP5.5.x中是“固定”的,但不幸的是我使用的是5.3.x $iHatePHP = $node->get($key); if (isset($node->get($key)) ... 我得到的错误是: 致命错误:无法在…中的写入上下文中使用方法返回值。 我知道“修复”是将get()的结果放入一个变量中,然后调用isset()。然而,为了避免在我的代码中编写数千次,它是等效的还是我遗漏了一些案例 $iHatePHP = $node-&

我知道这样的问题。有很多答案都很好

我知道这在PHP
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)) ) ...