gpt4 book ai didi

php - 当我将空值视为这样的数组时,为什么 PHP 不会提示?

转载 作者:IT王子 更新时间:2023-10-29 01:16:43 28 4
gpt4 key购买 nike

在 PHP 中,我有 error_reporting设置报告包括通知在内的所有内容。

为什么以下内容不会引发任何通知、错误或其他任何内容?

$myarray = null;
$myvalue = $myarray['banana'];

故障排除步骤:

$myarray = array();
$myvalue = $myarray['banana'];
// throws a notice, as expected ✔

$myarray = (array)null;
$myvalue = $myarray['banana'];
// throws a notice, as expected ✔

$myarray = null;
$myvalue = $myarray['banana'];
// no notice or warning thrown, $myvalue is now NULL. ✘ Why?

这可能是 PHP 中的一个错误,或者我只是不了解它的工作原理。

最佳答案

在以下三种类型上使用数组解引用语法可能是有效的:

  • 数组
  • 字符串(访问给定位置的字符)
  • 对象(实现 ArrayAccess 接口(interface)的对象)

对于所有其他类型,PHP 只返回 undefined variable

数组取消引用由 FETCH_DIM_R opcode 处理,它使用 zend_fetch_dimension_address_read()获取元素。

如您所见,NULL 有一种特殊情况,还有一种默认情况,两者都返回 undefined variable

关于php - 当我将空值视为这样的数组时,为什么 PHP 不会提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10990321/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com