2008-10-28 10 views
7

में उपयोग से पहले चर घोषित करने का सही तरीका मेरे पास एक चर है जो लूप में बनाया गया है। की तरह कुछ:PHP: लूप

$str = ""; 
for($i = 0; $i < 10; $i++) $str .= "something"; 

$ str हैं = "" लोप है, मैं अपरिभाषित चर नोटिस मिलता है, लेकिन मैंने सोचा कि php एक चर पहली बार यह एक अघोषित देखता ऑटो की घोषणा?

मैं यह कैसे कर सकता हूं?

उत्तर

14

आपको अपरिभाषित चर मिलता है क्योंकि आप स्वयं के मूल्य को किसी अन्य मूल्य के साथ जोड़ रहे हैं।

$str = $str . "something";

के बराबर इसलिए, यह नहीं कह सकता कि प्रारंभिक मूल्य है।

$str = [undefined value] . "something";

[undefined value] और "something" का एक संयोजन का परिणाम क्या है: यह इस के बराबर है? दुभाषिया नहीं कह सकता ...

तो, आपको वैरिएबल के मान को शुरू करने के लिए पहले चर में "" डालना होगा, जैसा आपने किया था।

HTH

+0

मुझे लगता है कि वेरिएबल स्कोप भी लूप पर लागू होता है लेकिन हाँ, आप ठीक वही हैं जो मेरे साथ हुआ और अब मैं कारण समझता हूं। +1 – Tarik

4

यह सुरक्षित है ऑटो घोषित सुविधा का उपयोग नहीं करने के लिए - यही कारण है कि यह एक नोटिस जारी करता है। एक नोटिस चेतावनी का निम्नतम स्तर है, और डिफ़ॉल्ट रूप से प्रदर्शित नहीं किया जाएगा। यदि आप उन्हें चालू करना चाहते हैं तो अधिकांश पुराने PHP ऐप्स बहुत सारी नोटिस जारी करेंगे।

8

तुम सच में यह एक यह क्लीनर तुम कर सकते हो बनाने के लिए की जरूरत है:

for($i = 0, $str = ''; $i < 10; $i++) $str .= "something"; 

लेकिन क्या आपके पास क्या मैं सामान्य रूप से करते हैं। vlceBerg इसे अच्छी तरह से बताता है।

+1

बस एक विचार ... क्या आप यह कर सकते हैं: ($ i = 0, $ str = ''; $ i <10; $ i ++, $ str। = "कुछ"); ? मेरे पास परीक्षण करने के लिए अभी एक PHP बॉक्स नहीं है .... – vIceBerg

+1

स्पष्ट रूप से हाँ: zsh% echo ' '| php somethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomething –

+0

Yep vlceBerg - आपको लूप सामग्री की भी आवश्यकता नहीं है। मुझे सामग्री का उपयोग करके समझना आसान लगता है लेकिन यह एक पंक्ति है क्योंकि आपको इसकी आवश्यकता नहीं है। – Ross

2

स्वत: घोषित किए गए PHP चर को अपरिभाषित के रूप में पंजीकृत किया गया है, इसलिए आपको नोटिस प्राप्त हो रहा है।

आम तौर पर उनके उपयोग से पहले PHP चर घोषित करना बेहतर होता है हालांकि हमारे बीच आलसी कई लोग स्वयं को हमेशा ऐसा नहीं करते हैं।