您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php对象比较

2025/10/4 18:12:20发布7次查看
php 5 中的对象比较要比 php 4 中复杂,所期望的结果更符合一个面向对象语言。
当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值 都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等。
而如果使用全等运算符(===),这两个对象变量一定要指向某个类的同一个实例(即同一个对象)。
通过下面的示例可以理解以上原则。
example #1 php 5 的对象比较
<?php function bool2str($bool) { if ($bool === false) { return 'false'; } else { return 'true'; } } function compareobjects(&$o1, &$o2) { echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "\n"; echo 'o1 != o2 : ' . bool2str($o1 != $o2) . "\n"; echo 'o1 === o2 : ' . bool2str($o1 === $o2) . "\n"; echo 'o1 !== o2 : ' . bool2str($o1 !== $o2) . "\n"; } class flag { public $flag; function flag($flag = true) { $this->flag = $flag; } } class otherflag { public $flag; function otherflag($flag = true) { $this->flag = $flag; } } $o = new flag(); $p = new flag(); $q = $o; $r = new otherflag(); echo "two instances of the same class\n"; compareobjects($o, $p); echo "\ntwo references to the same instance\n"; compareobjects($o, $q); echo "\ninstances of two different classes\n"; compareobjects($o, $r); ?>
以上例程会输出:
two instances of the same class o1 == o2 : true o1 != o2 : false o1 === o2 : false o1 !== o2 : true two references to the same instance o1 == o2 : true o1 != o2 : false o1 === o2 : true o1 !== o2 : false instances of two different classes o1 == o2 : false o1 != o2 : true o1 === o2 : false o1 !== o2 : true
note:
php 扩展中可以自行定义对象比较的原则。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product