2011-08-05 23 views
5

यदि मेरे पास PHP में एक सरणी है जो वर्तमान में शून्य है, तो एक अपरिभाषित अनुक्रमणिका तक पहुंच नहीं करनी चाहिए E_NOTICE स्तर त्रुटि?अपरिभाषित सूचकांक व्यवहार

अगर मैं निम्नलिखित स्निपेट है:

$myArray = null; 
echo $myArray['foo']['bar']; 

मैं एक त्रुटि उम्मीद होती है, लेकिन यह मुद्दा बिना चलाता है। मैंने अपने लॉग स्तर को E_ALL पर सेट करने के लिए सत्यापित कर लिया है। क्या कोई ऐसी चीज है जो मुझे याद आ रही है या जब तक आप डेटा को संशोधित करने की कोशिश नहीं कर रहे हैं, तब तक PHP अनिश्चित इंडेक्स के लिए खुश लौट रहा है?

+0

bugs.php.net पर जाने का प्रयास करें मेरे लिए, यह अजीब व्यवहार है। $ MyArray = सरणी(); echo $ myArray ['foo'] ['bar']; मुझे लगता है कि – RiaD

+0

@ डैन डब्ल्यू: फैबियोजी, सही है। – linguini

+0

@RiaD: कोई त्रुटि नहीं मिली। http://www.meandeviation.com/tutorials/learnphp/php-syntax-check/v4/do-syntax-check.php – linguini

उत्तर

3

हां, अपरिभाषित सूचकांक केवल शून्य चर के लिए ट्रिगर नहीं करता है (मुझे क्यों नहीं पूछें)। यह एक नोटिस ट्रिगर करेगा हालांकि:

<?php 
    error_reporting(E_ALL); 
    $myArray = array(); 
    echo $myArray['foo']['bar']; 
?> 
2

नहीं, यह $ myArray को शून्य पर सेट होने पर कोई त्रुटि नहीं दिखाता है। यदि यह शून्य के अलावा एक खाली सरणी या कोई अन्य मान है तो यह एक E_NOTICE स्तर त्रुटि देता है। मैं वास्तव में नहीं जानता कि क्यों, लेकिन ऐसा ही है।

+1

प्रदान करता है बस परीक्षण किया गया और आप सही हैं। शून्य पर सेट करने से कोई त्रुटि नहीं मिलती है, लेकिन एक खाली सरणी करता है। –

संबंधित मुद्दे