2017-02-22 106 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進行更改。