परिचय
PHP में, डबल कोलन :: को स्कोप रिज़ॉल्यूशन ऑपरेटर (Scope Resolution Operator) के रूप में परिभाषित किया गया है। इसका उपयोग तब किया जाता है जब हम क्लास स्तर पर परिभाषित कॉन्स्टेंट्स, प्रॉपर्टीज और मेथड्स तक पहुँचना चाहते हैं। इन आइटम्स को क्लास परिभाषा के बाहर संदर्भित करते समय, क्लास के नाम का उपयोग स्कोप रिज़ॉल्यूशन ऑपरेटर के साथ किया जाता है। इस ऑपरेटर को Paamayim Nekudotayim भी कहा जाता है, जिसका हिब्रू में अर्थ डबल कोलन होता है।
सिंटैक्स
<?php
class A {
const PI = 3.142;
static $x = 10;
}
echo A::PI;
echo A::$x;
$var = 'A';
echo $var::PI;
echo $var::$x;
?>
क्लास के अंदर
किसी भी मेथड के अंदर क्लास-स्तरीय आइटम्स तक पहुँचने के लिए, कीवर्ड self का उपयोग किया जाता है।
<?php
class A {
const PI = 3.142;
static $x = 10;
static function show() {
echo self::PI . self::$x;
}
}
A::show();
?>
चाइल्ड क्लास में
यदि पैरेंट क्लास मेथड को चाइल्ड क्लास द्वारा ओवरराइड किया जाता है और आपको संबंधित पैरेंट मेथड को कॉल करने की आवश्यकता है, तो इसे parent कीवर्ड और स्कोप रिज़ॉल्यूशन ऑपरेटर से उपसर्गित किया जाना चाहिए।
उदाहरण: पैरेंट मेथड कॉल करना
<?php
class testclass {
public function sayhello() {
echo "Hello World\n";
}
}
class myclass extends testclass {
public function sayhello() {
parent::sayhello();
echo "Hello PHP";
}
}
$obj = new myclass();
$obj->sayhello();
?>
आउटपुट
Hello World Hello PHP