परिचय
PHP दो ऑब्जेक्ट वेरिएबल्स की तुलना के लिए दो ऑपरेटर्स प्रदान करता है:
- == (समानता) - true लौटाता है यदि दोनों ऑब्जेक्ट्स एक ही क्लास के हैं और उनकी संबंधित प्रॉपर्टीज़ के मान समान हैं।
- === (पहचान) - true लौटाता है यदि और केवल यदि दोनों वेरिएबल्स एक ही क्लास के एक ही इंस्टेंस को संदर्भित करते हैं।
तुलना के लिए टेस्ट क्लासेस
<?php
class test1 {
private $x;
private $y;
function __construct($arg1, $arg2) {
$this->x = $arg1;
$this->y = $arg2;
}
}
class test2 {
private $x;
private $y;
function __construct($arg1, $arg2) {
$this->x = $arg1;
$this->y = $arg2;
}
}
?>
1. एक ही क्लास के दो ऑब्जेक्ट्स (समान प्रॉपर्टीज़)
$a = new test1(10, 20); $b = new test1(10, 20); echo "same class objects\n"; echo "using == : "; var_dump($a == $b); echo "using === : "; var_dump($a === $b);
आउटपुट
same class objects using == : bool(true) using === : bool(false)
2. एक ही ऑब्जेक्ट के दो रेफरेंसेज
$a = new test1(10, 20); $c = $a; echo "same object references\n"; echo "using == : "; var_dump($a == $c); echo "using === : "; var_dump($a === $c);
आउटपुट
same object references using == : bool(true) using === : bool(true)
3. अलग-अलग क्लासेज के दो ऑब्जेक्ट्स (समान प्रॉपर्टीज़)
$a = new test1(10, 20); $d = new test2(10, 20); echo "different class objects\n"; echo "using == : "; var_dump($a == $d); echo "using === : "; var_dump($a === $d);
आउटपुट
different class objects using == : bool(false) using === : bool(false)
सारांश
| परिदृश्य | == | === |
|---|---|---|
| एक ही क्लास, समान प्रॉपर्टीज़ | true | false |
| एक ही इंस्टेंस के रेफरेंसेज | true | true |
| अलग क्लास, समान प्रॉपर्टीज़ | false | false |