在评估数组属性时,怎么没有抛出错误?

时间:2017-11-28 20:31:26

标签: php isset

每当我尝试访问不存在的数组的属性时,php会抛出一个如下所示的ERROR_NOTICE:

Notice: Undefined offset: BLANK in BLANK on line BLANK

$a = array("a","b","c");

$a[4]; //throws an error

相反,如果我使用isset来测试此属性是否存在,则不会抛出此错误。

$a = array("a","b","c");

isset($a[4]); //does not throw an error

由于php在将参数传递给函数之前会对其进行求值,因此如何避免抛出错误?

1 个答案:

答案 0 :(得分:6)

isset不是函数,而是语言构造

  

注意:因为这是一种语言结构而不是函数,所以不能使用变量函数调用它。

它不是调用函数的方式,而是由语言专门处理。 empty也是如此。