2017-02-22 103 views
0

当我执行此代码时,我得到NULL,没有任何通知。当倾销索引的布尔

$a = false; 
var_dump($a[5]); 

谁能解释这一点?

+2

索引5没有任何内容? – Swift

+0

需要转储布尔变量的是什么? – Thamilan

+0

@Swift 5是例如,你可以尝试10或20,无论什么... –

回答

1

试图访问还没有被定义的阵列密钥是相同的 作为访问任何其他未定义的变量:一个E_NOTICE-level 错误消息将被发出,并且结果将是NULL

阵列解引用的标量值,其不是字符串默默地 产生NULL,即没有发出一条错误消息。

请参见更多详情请参见:http://php.net/manual/en/language.types.array.php

+0

但我没有任何通知,这是我困惑的原因。 (我的通知已启用)。 –

+0

请在我的答案中阅读第二点..... **这不是一个字符串静静地产生NULL,即不发出错误消息** – Naincy

+0

应该输出什么$ a = [];的var_dump($一个[5]); ? –

0

您以阵列的形式访问布尔变量是不可能的。
指数5您正在访问不是提供$a那就是如果你想创建一个布尔值数组您得到空中的var_dump
的原因则有可能
检查下面的代码:

<?php 
    $a = array(true, false, true, true, false, false); 
    var_dump($a[5]); 
?> 
+0

不,我知道hove创建数组))。我的问题为什么我没有任何通知? –

0

有两个控制显示错误消息的PHP配置变量。第一个是display_errors。如果设置为On,则错误消息将显示在输出中。另一个是error_reporting。它定义了要显示的错误的严重级别。

这两个设置都可以在运行时使用ini_set进行更改。