यदि हां अन्य PHP कोड स्निपेट टैग में परिभाषित एक var तक पहुंचने का कोई तरीका है?क्या <?php> टैग के अंदर हर PHP कोड स्निपेट का अपना वैरिएबल स्कोप है?
उत्तर
नहीं, वे नहीं करते हैं। अलग <?php ?>
टैग समान वैरिएबल स्कोप साझा करते हैं। आप किसी भी स्कोप से घोषित किसी भी चर का उपयोग कर सकते हैं:
<?php $foo = 4; ?>
<?php echo $foo; /* will echo 4 */ ?>
PHP में एकमात्र स्कोपिंग धारणा फ़ंक्शंस या विधियों के लिए मौजूद है। किसी फ़ंक्शन या विधि में वैश्विक चर का उपयोग करने के लिए, आपको $GLOBALS
सरणी, या global $theVariableINeed;
अपने फ़ंक्शन के अंदर घोषणा का उपयोग करना होगा।
नहीं, डिफ़ॉल्ट रूप से सभी फ़ाइलें PHP में समान दायरे साझा करती हैं। कक्षाओं या कार्यों का उपयोग करके आपको प्राप्त करने वाला एकमात्र स्कोपिंग है।
आप एक ही पेज में
<php
$a = '111';
?>
और
<php
echo $a
?>
है, तो यह होगा उत्पादन 111, जिसका अर्थ है, यह पहली पीएचपी टुकड़ा से चर को पहचानता है।
PHP में परिवर्तनीय दायरा इस तरह काम नहीं करता है।
परिवर्तनीय स्कोर कक्षाओं और कार्यों में काम कर रहा है। उदाहरण के लिए:
<?php $a = 10 ?>
<?php echo $a; ?>
यह काम करेगा।
हालांकि:
<?php
$a = 10;
function get_a(){
echo $a;
}
?>
यह एक काम नहीं करेगा। यह या तो $ मूल्य या नोटिस स्तर त्रुटि नहीं दिखा रहा है (आपकी कॉन्फ़िगरेशन के आधार पर)
अधिक जानकारी के लिए, आप see this page कर सकते हैं।
आप स्क्रिप्ट के कुछ हिस्सों के बारे में सोच सकते हैं कि नहीं चर, उद्धरण, आदि के किसी भी प्रक्षेप बिना छोड़कर, एक गूंज बयान के अंदर <?php ?>
समकक्ष के रूप में हैं - केवल <?php ?>
। उदाहरण के लिए तो, आप भी कुछ इस तरह कर सकते हैं:
<?php if (42) { ?> This will only be output if 42 is true. <?php } ?>
नोट: मैं यह नहीं कह रहा हूं कि यह करना एक अच्छा विचार है, यह सिर्फ मेरे बिंदु को अच्छी तरह से दिखाता है। –
यह सुविधा स्वचालित रूप से जेनरेट किए गए कोड के लिए बेहद उपयोगी है, लेकिन मैं इसे स्वयं पढ़ या लिखना नहीं चाहूंगा। – zneak
तो सकल। लेकिन हे PHP जेएसएक्स से आगे था: डी – Askdesigners
पुन: "PHP में केवल scoping धारणा कार्य या तरीकों के लिए मौजूद है", पीएचपी 5.3 और एक तरह से अपने कान पर कि बयान कर देते हैं नामस्थान। –