php की परिभाषा - संदर्भ - PHP में यह त्रुटि क्या है?




15 Answers

चेतावनी: हेडर जानकारी संशोधित नहीं कर सकता - हेडर पहले ही भेजे गए हैं

ऐसा होता है जब आपकी स्क्रिप्ट क्लाइंट को HTTP शीर्षलेख भेजने की कोशिश करती है लेकिन पहले से ही आउटपुट पहले से ही था, जिसके परिणामस्वरूप हेडर क्लाइंट को पहले से ही भेजे जा सकते थे।

यह एक E_WARNING - E_WARNING और यह स्क्रिप्ट को नहीं रोक पाएगा।

एक सामान्य उदाहरण इस तरह एक टेम्पलेट फ़ाइल होगी:

<html>
    <?php session_start(); ?>
    <head><title>My Page</title>
</html>
...

session_start() फ़ंक्शन क्लाइंट को सत्र कुकी के साथ शीर्षलेख भेजने का प्रयास करेगा। लेकिन जब PHP ने आउटपुट स्ट्रीम में <html> तत्व लिखा था तो PHP ने पहले से ही हेडर भेजे थे। आपको session_start() को शीर्ष पर ले जाना होगा।

चेतावनी ट्रिगर करने वाले कोड से पहले लाइनों के माध्यम से जाकर इसे हल कर सकते हैं और यह जांच सकते हैं कि यह कहां आउटपुट करता है। उस कोड से पहले कोड भेजने वाले किसी हेडर को ले जाएं।

PHP के बंद होने के बाद अक्सर अनदेखा आउटपुट नई लाइनें होती है ?> । इसे छोड़ने के लिए एक मानक अभ्यास माना जाता है ?> जब यह फ़ाइल में आखिरी बात है। इसी प्रकार, इस चेतावनी के लिए एक और आम कारण यह है कि जब <?php पास एक खाली स्थान, रेखा या अदृश्य चरित्र होता है, जिससे वेबसर्वर हेडर और व्हाइटस्पेस / न्यूलाइन भेजता है, इस प्रकार PHP PHP पार्सिंग शुरू करने में सक्षम नहीं होगा कोई हेडर सबमिट करने के लिए।

यदि आपकी फ़ाइल में एक से अधिक <?php ... ?> कोड ब्लॉक है, तो आपके बीच कोई रिक्त स्थान नहीं होना चाहिए। (नोट: यदि आपके पास कोड था जो स्वचालित रूप से बनाया गया था तो आपके पास एकाधिक ब्लॉक हो सकते हैं)

यह भी सुनिश्चित करें कि आपके कोड में कोई बाइट ऑर्डर मार्क नहीं है, उदाहरण के लिए जब स्क्रिप्ट का एन्कोडिंग बीओएम के साथ यूटीएफ -8 है।

संबंधित सवाल:

का अर्थ

यह क्या है?

चेतावनी, त्रुटियों और सूचनाओं के बारे में कई जवाब हैं जो प्रोग्रामिंग PHP के दौरान आपको सामना करना पड़ सकता है और कोई संकेत नहीं है कि कैसे ठीक किया जाए। यह एक सामुदायिक विकी भी है, इसलिए इस सूची को जोड़ने और बनाए रखने में सभी को भाग लेने के लिए आमंत्रित किया जाता है।

ऐसा क्यों है?

"हेडर पहले से भेजे गए" या "गैर-ऑब्जेक्ट के सदस्य को कॉल करना " जैसे प्रश्न स्टैक ओवरफ़्लो पर अक्सर पॉप अप करते हैं। उन प्रश्नों का मूल कारण हमेशा समान होता है। तो उन सवालों के जवाब आम तौर पर उन्हें दोहराते हैं और फिर ओपी को दिखाते हैं कि कौन सी रेखा उसके विशेष मामले में बदल सकती है। ये उत्तर साइट पर कोई मूल्य नहीं जोड़ते हैं क्योंकि वे केवल ओपी के विशेष कोड पर लागू होते हैं। अन्य उपयोगकर्ताओं को एक ही त्रुटि होने से आसानी से समाधान को पढ़ नहीं सकता है क्योंकि वे बहुत स्थानीय हैं। यह दुखद है, क्योंकि एक बार जब आप मूल कारण समझते हैं, तो त्रुटि को ठीक करना मामूली होता है। इसलिए, यह सूची लागू करने के सामान्य तरीके से समाधान की व्याख्या करने की कोशिश करती है।

मुझे यहाँ क्या करना चाहिए?

यदि आपका प्रश्न इस के डुप्लिकेट के रूप में चिह्नित किया गया है, तो कृपया नीचे अपना त्रुटि संदेश ढूंढें और अपने कोड पर फिक्स लागू करें। उत्तरों में आम तौर पर सामान्य उत्तर से स्पष्ट नहीं होने पर जांच के लिए और अधिक लिंक होते हैं।

यदि आप योगदान देना चाहते हैं, तो कृपया अपना "पसंदीदा" त्रुटि संदेश, चेतावनी या नोटिस, प्रति जवाब एक, एक संक्षिप्त वर्णन जिसका अर्थ है (यहां तक ​​कि यदि यह केवल उनके मैन्युअल पृष्ठ पर शर्तों को हाइलाइट कर रहा है), एक संभावित समाधान या डिबगिंग दृष्टिकोण जोड़ें और मौजूदा क्यू एंड ए की एक सूची जो मूल्य के हैं। साथ ही, किसी भी मौजूदा उत्तर में सुधार करने के लिए स्वतंत्र महसूस करें।

सूचि

और देखें




कुछ भी नहीं देखा जाता है। पृष्ठ खाली और सफेद है।

मृत्यु के सफेद पृष्ठ या मौत की सफेद स्क्रीन के रूप में भी जाना जाता है। यह तब होता है जब त्रुटि रिपोर्टिंग बंद होती है और एक घातक त्रुटि (अक्सर वाक्यविन्यास त्रुटि) उत्पन्न होती है।

अगर आपके पास त्रुटि लॉगिंग सक्षम है, तो आपको अपने त्रुटि लॉग में ठोस त्रुटि संदेश मिलेगा। यह आमतौर पर "php_errors.log" नामक फ़ाइल में होगा, या तो केंद्रीय स्थान (उदाहरण के लिए /var/log/apache2 कई लिनक्स वातावरण पर) या स्क्रिप्ट की निर्देशिका में (कभी-कभी साझा होस्टिंग वातावरण में उपयोग किया जाता है) में होता है।

कभी-कभी त्रुटियों के प्रदर्शन को अस्थायी रूप से सक्षम करने के लिए यह अधिक सरल हो सकता है। फिर सफेद पृष्ठ त्रुटि संदेश प्रदर्शित करेगा। ध्यान रखें क्योंकि ये त्रुटियां वेबसाइट पर आने वाले सभी के लिए दृश्यमान हैं।

यह निम्नलिखित PHP कोड स्क्रिप्ट के शीर्ष पर जोड़कर आसानी से किया जा सकता है:

ini_set('display_errors', 1); error_reporting(~0);

कोड त्रुटियों के प्रदर्शन को चालू करेगा और उच्चतम स्तर पर रिपोर्टिंग सेट करेगा।

चूंकि ini_set() को रनटाइम पर निष्पादित किया जाता है, इसका पार्सिंग / वाक्यविन्यास त्रुटियों पर कोई प्रभाव नहीं पड़ता है। लॉग में लॉग इन दिखाई देंगे। यदि आप उन्हें आउटपुट में भी दिखाना चाहते हैं (उदाहरण के लिए ब्राउज़र में) तो आपको display_startup_errors निर्देश को true पर सेट करना होगा। इसे या तो php.ini या .htaccess या किसी भी अन्य विधि से करें जो रनटाइम से पहले कॉन्फ़िगरेशन को प्रभावित करता है

आप अपने स्वयं के लॉग फ़ाइल स्थान का चयन करने के लिए log_errors और error_log निर्देश सेट करने के लिए समान विधियों का उपयोग कर सकते हैं।

लॉग में या डिस्प्ले का उपयोग करके, आपको एक बेहतर त्रुटि संदेश और कोड की रेखा मिल जाएगी जहां आपकी स्क्रिप्ट रुक जाएगी।

संबंधित सवाल:

संबंधित त्रुटियां:




चेतावनी: mysql_fetch_array () पैरामीटर 1 संसाधन होने के लिए उम्मीद करता है, बूलियन दिया गया

सबसे पहले:

कृपया, नए कोड में mysql_* फ़ंक्शंस का उपयोग न करें । वे अब बनाए रखा नहीं है और आधिकारिक तौर पर बहिष्कृत हैंलाल बॉक्स देखें? इसके बजाय तैयार बयानों के बारे में जानें, और PDO या MySQLi उपयोग करें - यह आलेख आपको यह तय करने में मदद करेगा कि कौन सा है। यदि आप पीडीओ चुनते हैं, तो यहां एक अच्छा ट्यूटोरियल है

यह तब होता है जब आप mysql_query के परिणाम से डेटा लाने का प्रयास करते हैं लेकिन क्वेरी विफल हुई।

यह एक चेतावनी है और स्क्रिप्ट को नहीं रोक पाएगी, लेकिन आपके प्रोग्राम को गलत बना देगा।

आपको mysql_query द्वारा दिए गए परिणाम की जांच करने की आवश्यकता है

$res = mysql_query($sql);
if (!$res) {
   die(mysql_error());
}
// after checking, do the fetch

संबंधित सवाल:

संबंधित त्रुटियां:

अन्य mysql* फ़ंक्शंस जो कि एक MySQL परिणाम संसाधन को पैरामीटर के रूप में भी उम्मीद करते हैं, उसी कारण से एक ही त्रुटि उत्पन्न करेंगे।




घातक त्रुटि: अपरिभाषित फ़ंक्शन XXX पर कॉल करें

ऐसा होता है जब आप किसी फ़ंक्शन को कॉल करने का प्रयास करते हैं जिसे अभी तक परिभाषित नहीं किया गया है। सामान्य कारणों में अनुपलब्ध एक्सटेंशन शामिल हैं और इसमें सशर्त कार्य घोषणा, फ़ंक्शन घोषणा या सरल टाइपो में कार्य शामिल है।

उदाहरण 1 - सशर्त समारोह घोषणा

$someCondition = false;
if ($someCondition === true) {
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error

इस मामले में, fn() कभी घोषित नहीं किया जाएगा क्योंकि $someCondition सच नहीं है।

उदाहरण 2 - फ़ंक्शन घोषणा में फ़ंक्शन

function createFn() 
{
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error

इस मामले में, fn केवल एक बार createFn() जाएगा createFn() को कॉल किया जाता है। ध्यान दें कि बनाने के लिए बाद की कॉल createFn() मौजूदा फ़ंक्शन के पुनर्वितरण के बारे में एक त्रुटि को ट्रिगर करेगा।

आप इसे PHP अंतर्निहित फ़ंक्शन के लिए भी देख सकते हैं। आधिकारिक मैन्युअल में फ़ंक्शन की खोज करने का प्रयास करें, और यह जांचें कि "एक्सटेंशन" (PHP मॉड्यूल) क्या है, और PHP के कौन से संस्करण इसका समर्थन करते हैं।

अनुपलब्ध एक्सटेंशन के मामले में, उस एक्सटेंशन को इंस्टॉल करें और इसे php.ini में सक्षम करें। आपके फ़ंक्शन में विस्तार के विस्तार के लिए PHP मैन्युअल में स्थापना निर्देशों का संदर्भ लें। आप अपने पैकेज मैनेजर (उदाहरण के लिए डेबियन या उबंटू में apt , Red Hat या CentOS में yum ) का उपयोग करके एक्सटेंशन को सक्षम या इंस्टॉल करने में सक्षम हो सकते हैं, या एक साझा होस्टिंग वातावरण में नियंत्रण कक्ष।

यदि आपके द्वारा उपयोग किए जा रहे PHP से नए संस्करण में फ़ंक्शन पेश किया गया था, तो आपको मैन्युअल या इसके टिप्पणी अनुभाग में वैकल्पिक कार्यान्वयन के लिंक मिल सकते हैं। अगर इसे PHP से हटा दिया गया है, तो क्यों जानकारी के बारे में जानकारी देखें, क्योंकि यह अब आवश्यक नहीं हो सकता है।

गायब होने के मामले में, फ़ंक्शन को कॉल करने से पहले फ़ंक्शन घोषित करने वाली फ़ाइल को शामिल करना सुनिश्चित करें।

टाइपो के मामले में, टाइपो को ठीक करें।

संबंधित सवाल:

  • https://.com/search?q=Fatal+error%3A+Call+to+undefined+function



घातक त्रुटि: लेखन संदर्भ में फ़ंक्शन रिटर्न मान का उपयोग नहीं कर सकता

आमतौर पर empty फ़ंक्शन का उपयोग करते समय ऐसा होता है।

उदाहरण:

if (empty(is_null(null))) {
  echo 'empty';
}

ऐसा इसलिए है क्योंकि empty एक भाषा निर्माण है और एक समारोह नहीं है, इसे 5.5 से पहले PHP संस्करणों में इसकी अभिव्यक्ति के रूप में अभिव्यक्ति के साथ नहीं कहा जा सकता है। PHP 5.5 से पहले, empty() को तर्क एक चर होना चाहिए, लेकिन PHP 5.5+ में एक मनमानी अभिव्यक्ति (जैसे किसी फ़ंक्शन का वापसी मान) अनुमत है।

empty , इसके नाम के बावजूद, वास्तव में यह जांच नहीं करता है कि कोई चर "खाली" है या नहीं। इसके बजाए, यह जांचता है कि कोई चर मौजूद नहीं है, या == false । अभिव्यक्तियां (जैसे उदाहरण में is_null(null) ) हमेशा मौजूद होने के लिए समझा जाएगा, इसलिए empty केवल तभी जांच कर रहा है जब यह झूठी के बराबर है। आप यहां empty() को प्रतिस्थापित कर सकते हैं ! , उदाहरण के लिए if (!is_null(null)) , या स्पष्ट रूप से झूठी तुलना करें, उदाहरण के लिए if (is_null(null) == false)

संबंधित सवाल:




घातक त्रुटि: XXX बाइट्स की अनुमति दी गई स्मृति आकार (XXX बाइट आवंटित करने का प्रयास किया गया)

आपकी स्क्रिप्ट चलाने के लिए पर्याप्त स्मृति नहीं है। PHP स्मृति सीमा तक पहुंच गया है और इसे निष्पादित करना बंद कर देता है। यह त्रुटि घातक है, लिपि रुक ​​जाती है। स्मृति सीमा का मान php.ini फ़ाइल में या ini_set('memory_limit', '128 M'); का उपयोग करके कॉन्फ़िगर किया जा सकता है ini_set('memory_limit', '128 M'); स्क्रिप्ट में (जो php.ini में परिभाषित मान को ओवरराइट करेगा)। स्मृति सीमा का उद्देश्य एक एकल PHP स्क्रिप्ट को सभी उपलब्ध स्मृति को गब्बल करने और पूरे वेब सर्वर को नीचे लाने से रोकने के लिए है।

करने के लिए पहली बात यह है कि आपकी स्क्रिप्ट की ज़रूरतों की मात्रा को कम करें। उदाहरण के लिए, यदि आप एक चर में एक बड़ी फ़ाइल पढ़ रहे हैं या डेटाबेस से कई रिकॉर्ड ला रहे हैं और उन्हें सभी को एक सरणी में संग्रहीत कर रहे हैं, जो बहुत सारी मेमोरी का उपयोग कर सकते हैं। लाइन कोड द्वारा फ़ाइल लाइन को पढ़ने या डेटाबेस रिकॉर्ड्स को एक बार में स्मृति में संग्रहीत किए बिना एक बार अपने कोड को बदलें। दृश्यों के पीछे क्या हो रहा है और जब डेटा स्मृति बनाम कहीं और संग्रहीत किया जाता है, इसके बारे में एक अवधारणात्मक जागरूकता की आवश्यकता होती है।

यदि यह त्रुटि तब हुई जब आपकी स्क्रिप्ट स्मृति-गहन कार्य नहीं कर रही थी, तो आपको यह देखने के लिए अपना कोड जांचना होगा कि स्मृति मेमोरी है या नहीं। memory_get_usage फ़ंक्शन आपका मित्र है।

संबंधित सवाल:

  • सभी "घातक त्रुटि: XXX बाइट्स की अनुमत स्मृति आकार समाप्त हो गया" स्टैक ओवरफ्लो पर प्रश्न



पार्स त्रुटि: वाक्यविन्यास त्रुटि, अप्रत्याशित T_PAAMAYIM_NEKUDOTAYIM

स्कोप रेज़ोल्यूशन ऑपरेटर को हिब्रू פעמיים נקודתיים से "Paamayim Nekudotayim" भी कहा जाता है। जिसका अर्थ है "डबल कॉलन" या "डबल डॉट दो बार"।

यह त्रुटि आमतौर पर तब होती है जब आप अनजाने में :: अपने कोड में डाल दें।

संबंधित सवाल:

प्रलेखन:




नोटिस: अपरिभाषित चर

ऐसा होता है जब आप एक वेरिएबल का उपयोग करने का प्रयास करते हैं जिसे पहले परिभाषित नहीं किया गया था।

एक सामान्य उदाहरण होगा

foreach ($items as $item) {
    // do something with item
    $counter++;
}

यदि आपने पहले $counter को परिभाषित नहीं किया है, तो ऊपर दिया गया कोड नोटिस ट्रिगर करेगा।

इसका उपयोग करने से पहले वैरिएबल को सेट करने का सही तरीका होगा, भले ही यह केवल खाली स्ट्रिंग है

$counter = 0;
foreach ($items as $item) {
    // do something with item
    $counter++;
}

संबंधित सवाल:




नोटिस: अपरिभाषित निरंतर XXX का उपयोग - माना गया 'XXX'

या, PHP 7.2 या बाद में:

चेतावनी: अपरिभाषित निरंतर XXX का उपयोग - माना गया 'XXX' (यह PHP के भविष्य के संस्करण में एक त्रुटि फेंक देगा)

यह नोटिस तब होता है जब कोड में टोकन का उपयोग किया जाता है और स्थिर होता प्रतीत होता है, लेकिन उस नाम से निरंतर परिभाषित नहीं किया जाता है।

इस नोटिस के सबसे आम कारणों में से एक एसोसिएटिव सरणी कुंजी के रूप में उपयोग की जाने वाली स्ट्रिंग को उद्धृत करने में विफलता है।

उदाहरण के लिए:

// Wrong
echo $array[key];

// Right
echo $array['key'];

एक अन्य आम कारण एक परिवर्तनीय नाम के सामने $ (डॉलर) संकेत गायब है:

// Wrong
echo varName;

// Right
echo $varName;

या शायद आपने कुछ अन्य निरंतर या कीवर्ड गलत वर्तनी की है:

// Wrong
$foo = fasle;

// Right
$foo = false;

यह एक संकेत भी हो सकता है कि जब आप उस लाइब्रेरी द्वारा निरंतर परिभाषित करने का प्रयास करते हैं तो एक आवश्यक PHP एक्सटेंशन या लाइब्रेरी गुम होती है।

संबंधित सवाल:




नोटिस: अनियमित स्ट्रिंग ऑफ़सेट: *

जैसा कि नाम इंगित करता है, इस प्रकार की त्रुटि होती है, जब आप अधिकतर पुन: प्रयास करने की कोशिश कर रहे हैं, या गैर-मौजूदा कुंजी के साथ सरणी से मान प्राप्त करते हैं।

आप पर विचार करें, $string से प्रत्येक पत्र दिखाने की कोशिश कर रहे हैं

$string = 'ABCD'; 
for ($i=0, $len = strlen($string); $i <= $len; $i++){
    echo "$string[$i] \n"; 
}

उपर्युक्त उदाहरण उत्पन्न होगा ( ऑनलाइन डेमो ):

A
B
C
D
Notice: Uninitialized string offset: 4 in XXX on line X

और, जैसे ही स्क्रिप्ट D प्रतिबिंबित करती है, आपको त्रुटि मिल जाएगी, क्योंकि के for() लूप के अंदर, आपने PHP को बताया है कि आपको 'ABCD' से पहले से पांचवें स्ट्रिंग कैरेक्टर से दिखाया गया है, जो मौजूद है, लेकिन चूंकि लूप 0 से गिनने लगता है और जब तक यह 4 तक पहुंच जाता है तब तक D को इकोज़ करता है, यह ऑफ़सेट त्रुटि फेंक देगा।

इसी तरह की त्रुटियां:

  • अवैध स्ट्रिंग ऑफ़सेट 'विकल्प 1'



पार्स त्रुटि: वाक्यविन्यास त्रुटि, अप्रत्याशित '['

यह त्रुटि दो variatians में आता है:

बदलाव 1

$arr = [1, 2, 3];

यह सरणी प्रारंभकर्ता वाक्यविन्यास केवल PHP 5.4 में पेश किया गया था; इससे पहले संस्करणों पर एक पार्सर त्रुटि बढ़ेगी। यदि संभव हो, तो अपनी स्थापना को अपग्रेड करें या पुराने सिंटैक्स का उपयोग करें:

$arr = array(1, 2, 3);

मैनुअल से यह उदाहरण भी देखें।

बदलाव 2

$suffix = explode(',', 'foo,bar')[1];

PHP 5.4 में ऐरे डीरफ्रेंसिंग फ़ंक्शन परिणाम भी पेश किए गए थे। यदि अपग्रेड करना संभव नहीं है तो आपको एक (अस्थायी) चर का उपयोग करने की आवश्यकता है:

$parts = explode(',', 'foo,bar');
$suffix = $parts[1];

मैनुअल से यह उदाहरण भी देखें।




Notice: Trying to get property of non-object error

Happens when you try to access a property of an object while there is no object.

A typical example for a non-object notice would be

$users = json_decode('[{"name": "hakre"}]');
echo $users->name; # Notice: Trying to get property of non-object

In this case, $users is an array (so not an object) and it does not have any properties.

This is similar to accessing a non-existing index or key of an array (see Notice: Undefined Index ).

This example is much simplified. Most often such a notice signals an unchecked return value, eg when a library returns NULL if an object does not exists or just an unexpected non-object value (eg in an Xpath result, JSON structures with unexpected format, XML with unexpected format etc.) but the code does not check for such a condition.

As those non-objects are often processed further on, often a fatal-error happens next on calling an object method on a non-object (see: Fatal error: Call to a member function ... on a non-object ) halting the script.

It can be easily prevented by checking for error conditions and/or that a variable matches an expectation. Here such a notice with a DOMXPath example:

$result  = $xpath->query("//*[@id='detail-sections']/div[1]");
$divText = $result->item(0)->nodeValue; # Notice: Trying to get property of non-object

The problem is accessing the nodeValue property (field) of the first item while it has not been checked if it exists or not in the $result collection. Instead it pays to make the code more explicit by assigning variables to the objects the code operates on:

$result  = $xpath->query("//*[@id='detail-sections']/div[1]");
$div     = $result->item(0);
$divText = "-/-";
if ($div) {
    $divText = $div->nodeValue;
}
echo $divText;

Related errors:

  • नोटिस: अपरिभाषित सूचकांक
  • Fatal error: Call to a member function ... on a non-object



Code doesn't run/what looks like parts of my PHP code are output

If you see no result from your PHP code whatsoever and/or you are seeing parts of your literal PHP source code output in the webpage, you can be pretty sure that your PHP isn't actually getting executed. If you use View Source in your browser, you're probably seeing the whole PHP source code file as is. Since PHP code is embedded in <?php ?> tags, the browser will try to interpret those as HTML tags and the result may look somewhat confused.

To actually run your PHP scripts, you need:

  • a web server which executes your script
  • to set the file extension to .php, otherwise the web server won't interpret it as such*
  • to access your .php file via the web server

* Unless you reconfigure it, everything can be configured.

This last one is particularly important. Just double clicking the file will likely open it in your browser using an address such as:

file://C:/path/to/my/file.php

This is completely bypassing any web server you may have running and the file is not getting interpreted. You need to visit the URL of the file on your web server, likely something like:

http://localhost/my/file.php

You may also want to check whether you're using short open tags <? instead of <?php and your PHP configuration has turned short open tags off.

Also see PHP code is not being executed, instead code shows on the page




Notice: Array to string conversion

This simply happens if you try to treat an array as a string:

$arr = array('foo', 'bar');

echo $arr;  // Notice: Array to string conversion
$str = 'Something, ' . $arr;  // Notice: Array to string conversion

An array cannot simply be echo 'd or concatenated with a string, because the result is not well defined. PHP will use the string "Array" in place of the array, and trigger the notice to point out that that's probably not what was intended and that you should be checking your code here. You probably want something like this instead:

echo $arr[0];  // displays foo
$str = 'Something ' . join(', ', $arr); //displays Something, foo, bar

Or loop the array:

foreach($arr as $key => $value) {
    echo "array $key = $value";
    // displays first: array 0 = foo
    // displays next:  array 1 = bar
}

If this notice appears somewhere you don't expect, it means a variable which you thought is a string is actually an array. That means you have a bug in your code which makes this variable an array instead of the string you expect.




Strict Standards: Non-static method [<class>::<method>] should not be called statically

Occurs when you try to call a non-static method on a class as it was static, and you also have the E_STRICT flag in your error_reporting() settings.

उदाहरण :

class HTML {
   public function br() {
      echo '<br>';
   }
}

HTML::br() or $html::br()

You can actually avoid this error by not adding E_STRICT to error_reporting() , eg

error_reporting(E_ALL & ~E_STRICT);

since as for PHP 5.4.0 and above, E_STRICT is included in E_ALL [ ref ]. But that is not adviceable. The solution is to define your intended static function as actual static :

public static function br() {
  echo '<br>';
}

or call the function conventionally :

$html = new HTML();
$html->br();

Related questions :




Related