UNPKG

manual-php

Version:
89 lines (75 loc) 1.92 kB
# 对象比较 当使用比较运算符 `==` 比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等。而如果使用比较运算符 `===` ,这两个对象变量一定要指向某个类的同一个实例(即同一个对象)。 ```php <?php class Foo { /** * Just a test property. * * @var string */ public string $property; /** * Just a test method. * * @param void * @return void */ public function method() { // } } class Bar { /** * Just a test property. * * @var string */ public string $property; /** * Just a test method. * * @param void * @return void */ public function method() { // } } $foo = new Foo(); $bar = new Foo(); var_dump($foo == $bar); // bool(true) var_dump($foo != $bar); // bool(false) var_dump($foo === $bar); // bool(false) var_dump($foo !== $bar); // bool(true) $foo = new Foo(); $bar = clone $foo; var_dump($foo == $bar); // bool(true) var_dump($foo != $bar); // bool(false) var_dump($foo === $bar); // bool(false) var_dump($foo !== $bar); // bool(true) $foo = new Foo(); $foo->property = 'foo'; $bar = new Foo(); $bar->property = 'bar'; var_dump($foo == $bar); // bool(false) var_dump($foo != $bar); // bool(true) var_dump($foo === $bar); // bool(false) var_dump($foo !== $bar); // bool(true) $foo = new Foo(); $bar = new Bar(); var_dump($foo == $bar); // bool(false) var_dump($foo != $bar); // bool(true) var_dump($foo === $bar); // bool(false) var_dump($foo !== $bar); // bool(true) $foo = new Foo(); $bar = $foo; var_dump($foo == $bar); // bool(true) var_dump($foo != $bar); // bool(false) var_dump($foo === $bar); // bool(true) var_dump($foo !== $bar); // bool(false) ```