अवलोकन
PHP में, आप $
इसे एक गतिशील चर बनाने के लिए एक चर के सामने एक अतिरिक्त रख सकते हैं :
$$variableName = $value;
हालांकि मैं इसकी अनुशंसा नहीं करूंगा, आप इस व्यवहार की भी श्रृंखला बना सकते हैं:
$$$$$$$$DoNotTryThisAtHomeKids = $value;
आप के $variableName
बीच में डाल करने के लिए मजबूर नहीं कर सकते हैं {}
:
${$variableName} = $value;
उपयोग करना {}
केवल तभी अनिवार्य है जब आपके चर का नाम स्वयं कई मूल्यों की एक रचना है, जैसे:
${$variableNamePart1 . $variableNamePart2} = $value;
यह हमेशा उपयोग करने के लिए अनुशंसित है {}
, क्योंकि यह अधिक पठनीय है।
PHP5 और PHP7 के बीच अंतर
हमेशा उपयोग करने का एक और कारण {}
, यह है कि PHP5 और PHP7 में गतिशील चर से निपटने का एक अलग तरीका है, जिसके परिणामस्वरूप कुछ मामलों में एक अलग परिणाम होता है।
PHP7 में, डायनामिक वैरिएबल्स, प्रॉपर्टीज़ और तरीकों का अब लेफ्ट-टू-राइट ऑर्डर में कड़ाई से मूल्यांकन किया जाएगा, जैसा कि PHP5 में विशेष मामलों के मिश्रण के विपरीत है। नीचे दिए गए उदाहरण बताते हैं कि मूल्यांकन का क्रम कैसे बदल गया है।
मामला एक : $$foo['bar']['baz']
- PHP5 इंटरप्टेशन:
${$foo['bar']['baz']}
- PHP7 इंटरप्टेशन:
${$foo}['bar']['baz']
केस 2: $foo->$bar['baz']
- PHP5 इंटरप्टेशन:
$foo->{$bar['baz']}
- PHP7 इंटरप्टेशन:
$foo->{$bar}['baz']
केस 3: $foo->$bar['baz']()
- PHP5 इंटरप्टेशन:
$foo->{$bar['baz']}()
- PHP7 इंटरप्टेशन:
$foo->{$bar}['baz']()
केस 4: Foo::$bar['baz']()
- PHP5 इंटरप्टेशन:
Foo::{$bar['baz']}()
- PHP7 इंटरप्टेशन:
Foo::{$bar}['baz']()