PHP के पुराने संस्करणों में, हमें एक असंगति समस्या का सामना करना पड़ा। उदाहरण के लिए:${$पहले ['नाम']}। यह वाक्य-विन्यास भ्रम पैदा कर सकता है या हम कह सकते हैं कि वाक्य-विन्यास सुसंगत नहीं है। असंगतता की समस्या को दूर करने के लिए, PHP 7 ने "यूनिफ़ॉर्म वैरिएबल सिंटैक्स" नामक नया सिंटैक्स जोड़ा।
यूनिफ़ॉर्म वैरिएबल सिंटैक्स बाएं से दाएं वैरिएबल का मूल्यांकन करता है। हमें यूनिफ़ॉर्म वैरिएबल सिंटैक्स का उपयोग करने के लिए कर्ली ब्रैकेट्स को जोड़ना होगा। उदाहरण के लिए,
echo ${$first[‘name’]};
यूनिफॉर्म वेरिएबल सिंटैक्स ऑपरेटरों के संयोजन की अनुमति देता है और यह कुछ अभिव्यक्तियों में पश्चगामी संगतता को तोड़ सकता है जहां भी पुराने मूल्यांकन का उपयोग किया जाता है।
उदाहरण
<?php $x = (function() { return 20 - 10; }) (); echo "$x\n"; ?>
आउटपुट
उपरोक्त PHP प्रोग्राम के लिए आउटपुट होगा:
10
नोट: उपरोक्त प्रोग्राम तुरंत फंक्शन एक्सप्रेशन को लागू करेगा।
यूनिफ़ॉर्म वैरिएबल सिंटैक्स मौजूदा सिंटैक्स के नए संयोजनों का उपयोग करता है। उदाहरण के लिए,
$foo([‘bar’])();
यूनिफ़ॉर्म वेरिएबल सिंटैक्स फ़ंक्शंस द्वारा लौटाए गए स्ट्रिंग्स में वर्णों को अलग कर सकता है।
[$obj, $obj1] [0]->pro;
कुछ मामलों में, PHP 7 नेस्टेड डबल कोलन (::),
. का समर्थन करता है$foo[‘bar’]::$baz;
नेस्टेड मेथड/फंक्शन कॉल्स
हम कोष्ठक को दोगुना करने के लिए नेस्टेड विधि और फ़ंक्शन कॉल या किसी कॉल करने योग्य का उपयोग कर सकते हैं।
उदाहरण
foo()(); //return by a function callable $foo->bar()(); // return by an instance method Foo::bar()(); // static method $foo()(); // return by another callable
मनमाने ढंग से एक्सप्रेशन डीरेफ़रेंसिंग
PHP में अब हम कोष्ठक सहित किसी भी मान्य व्यंजक को असंबद्ध कर सकते हैं। उदाहरण के लिए,
(exp) [‘foo’] ; // It will access an array key (exp)->foo; // This will access the property (exp)->foo(); // It will call to a method etc.
उदाहरण
<?php function emp() { echo "This is emp() \n"; }; function dept() { echo "This is dept() \n"; return emp; }; function sub() { echo "This is sub()\n"; return dept; }; sub(); echo "----------------\n"; sub()(); echo "----------------\n"; sub()()(); ?>
आउटपुट
उपरोक्त कार्यक्रम के लिए आउटपुट होगा -
This is sub() ------------- This is sub() This is dept() ------------- This is sub() This is dept() This is emp()