2012-05-02 12 views
12

मैं कई सालों से एक PHP डेवलपर हूं लेकिन मुझे यह नहीं पता कि PHP कैसे चर के पीछे चर और उनके प्रकारों को संभालता है। मेरा मतलब है: PHP में - सिद्धांत में - मैं एक पूर्णांक को स्टोर करने के लिए एक ही चर का उपयोग कर सकता हूं, और उसके बाद एक स्ट्रिंग, और फिर एक बूलियन, और फिर एक सरणी ... आदि ...पीएचपी चर संभाल कैसे करता है?

व्यक्तिगत रूप से, मैं इसे नफरत करता हूं "खराब-जाली" प्रोग्रामिंग का तरीका, लेकिन मैं सोच रहा हूं कि PHP कैसे चर और उनके प्रकारों को प्रबंधित और प्रबंधित कर सकता है जैसा मैंने पूछा था। मुझे लगता है कि दुभाषिया पीछे के सी चर बनाता है और संभालता है, लेकिन मैं यह नहीं समझ सकता कि कैसे।

धन्यवाद।

+0

बहुत अच्छा, मैं एक सी ++ प्रोग्रामर हूं, ne PHP से डब्ल्यू और मैं भी सोच रहा था। –

+6

शब्द "गतिशील रूप से टाइप किया गया" है, न कि "खराब-जाली", अगर केवल इसलिए कि यह आवश्यक रूप से नकारात्मक बात नहीं है। –

उत्तर

12

दृश्यों के पीछे, PHP चर "एक" zval "संरचना में संग्रहीत होते हैं, जिसमें वेरिएबल स्टोर किए जा सकने वाले सभी प्रकार के डेटा के बीच एक संघ होता है (उदाहरण के लिए, एक लंबा, एक डबल, एक स्ट्रिंग पॉइंटर/लंबाई , ऑब्जेक्ट पॉइंटर ...), और यूनियन के बाहर कुछ अन्य फ़ील्ड जो इंगित करते हैं कि यह किस प्रकार का है और संदर्भ गणना का ट्रैक रखें।

http://devzone.zend.com/317/extension-writing-part-ii-parameters-arrays-and-zvals/

+0

बहुत संपूर्ण! धन्यवाद :) –

-1

अगर मैं सही ढंग से याद है, पीएचपी कई चर स्मृति में प्रत्येक चर के लिए PHP में आरंभ हो जाएगा:

पर इस में से कुछ आगे की चर्चा नहीं है

$test = 0; 

जिसका वास्तविक रूप है ..

int test = 0; 
float test = 0; 
char test = 0; 
bool test = false; 
pointer test = null; 
... 
+0

यदि यह सच है, तो यह किसी भी अच्छे कारण के लिए बेहद अक्षम है। प्रशस्ति पत्र? – delnan

+0

duskwuff का जवाब देखें, यह मेरे से बेहतर है। –

+0

उसका उत्तर कुछ अलग कहता है। असल में, उसका जवाब तात्पर्य है कि केवल एक चर मौजूद है। – delnan

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