PHP面向对象-对象的比较(二)

2023-04-28 09:10:48 浏览数 (1)

通过实现自定义比较方法来比较对象。这个方法需要在对象中定义一个名为 __compare 的方法,该方法需要接受一个对象作为参数,并返回一个整数值,用于比较两个对象。例如:

代码语言:javascript复制
class Person {
  public $name;
  public $age;

  public function __compare($person) {
    if ($this->age == $person->age) {
      return 0;
    } else if ($this->age < $person->age) {
      return -1;
    } else {
      return 1;
    }
  }
}

$person1 = new Person();
$person1->name = "Alice";
$person1->age = 30;

$person2 = new Person();
$person2->name = "Bob";
$person2->age = 40;

$result = $person1->__compare($person2);

if ($result == 0) {
  echo "Ages are equal";
} else if ($result < 0) {
  echo "Age of person 1 is smaller";
} else {
  echo "Age of person 1 is larger";
}

在这个例子中,我们定义了一个 __compare 方法来比较两个 Person 对象的 age 属性。如果 $person1 对象的 age 属性等于 $person2 对象的 age 属性,则返回 0;如果 $person1 对象的 age 属性小于 $person2 对象的 age 属性,则返回 -1;否则返回 1。在比较时,我们调用了 $person1 对象的 __compare 方法,并将 $person2 对象作为参数传递给该方法。比较的结果将保存在 $result 变量中,并根据返回值进行适当的输出。

php

0 人点赞