2011-04-12 18 views
7

मैं php चरणीय दायरे के बारे में उलझन में हूं। जैसे:PHP वैरिएबल स्कोप

while(true){ 
    $var = "yes , it is a test!"; 
    } 
    printf($var) 

$var जबकि बयान दायरे में परिभाषित किया गया है, हम इसे कैसे यह गुंजाइश है बाहर मिल सकती है? और मुझे दस्तावेज़ पर स्पष्टीकरण नहीं मिल रहा है।

मुझे आश्चर्य है कि PHP के अपने दायरे से कैसे निपटें।

+3

'जबकि (सत्य) 'एक अनंत लूप है ... – atlavis

+0

कृपया वापस जाएं और अपने पुराने प्रश्नों की समीक्षा करें। यदि अच्छे सॉल्यूशंस हैं, तो उन्हें हरे रंग की 'चेक' का उपयोग करके स्वीकृत के रूप में चिह्नित करें। यदि कोई नहीं है (जो मुझे संदेह है), तो कृपया अंत में समस्याओं को हल करने के तरीके के साथ अपने स्वयं के प्रश्नों का उत्तर देने पर विचार करें। इसके अलावा, अपने स्वरूपण को आजमाएं और जांचें। – Nanne

+0

यह एक उपयोगी प्रारंभिक बिंदु हो सकता है: http://php.net/manual/en/language.variables.scope.php –

उत्तर

2

आप while(true) आप जबकि से बाहर नहीं मिलेगा करते हैं, तो इससे कोई फर्क नहीं होता। लेकिन अगर आप एक असली अभिव्यक्ति, कुछ इस तरह होता है (यह एक बेकार उदाहरण है, मुझे पता है)

$i=0 
while($i<10){ 
    $var = "yes , it is a test!"; 
    $i++; 
} 
printf($var); 

सिर्फ काम करेगा। कोई विशेष "जबकि" चरणीय दायरा नहीं है, printf आपकी स्ट्रिंग मुद्रित करेगा। जांचें: http://php.net/manual/en/language.variables.scope.php

2

लूप में PHP में कोई दायरा नहीं है। चर लूप के बाहर बस उपलब्ध है।

लूप के बाहर बस echo;

echo $var;

8

while एक समारोह नहीं है। चर का दायरा functions और classes

6

PHP में, एक समय लूप एक नया scope नहीं बनाता है। तो यह समारोह

0

नोटिस: विभिन्न PHP-संस्करण $ ग्लोबल, $ _SERVER ($ HTTP_SERVER_VARS [बहिष्कृत]) और $ _SESSION पर अलग-अलग व्यवहार करते हैं। कृपया इसे जांचें। पुराना PHP पृष्ठ हमेशा ऊपर संगत नहीं होते हैं। आपको यह जांचना चाहिए।

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