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

Nic*_*tti 3 php isset

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

Notice: Undefined offset: BLANK in BLANK on line BLANK

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

$a[4]; //throws an error
Run Code Online (Sandbox Code Playgroud)

相反,如果我isset用来测试此属性的存在,则不会抛出此错误.

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

isset($a[4]); //does not throw an error
Run Code Online (Sandbox Code Playgroud)

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

tka*_*usl 6

isset不是一个函数,而是一个语言结构:

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

它不是调用函数的方式,而是由语言专门处理.同样的道理empty.