查詢

Ds\Hashable::equals()函式—用法及示例

「 比較兩個物件是否相等 」


函式名稱:Ds\Hashable::equals()

函式描述:該函式用於比較兩個物件是否相等。

函式引數:無引數

返回值:返回一個布林值,表示兩個物件是否相等。如果相等則返回true,否則返回false。

適用版本:PHP 7.1 及以上版本

函式用法:

  1. 實現Ds\Hashable介面:

    class MyClass implements Ds\Hashable
    {
        private $property;
    
        public function __construct($property)
        {
            $this->property = $property;
        }
    
        public function equals($obj): bool
        {
            if (!$obj instanceof MyClass) {
                return false;
            }
    
            return $this->property === $obj->property;
        }
    
        public function hash()
        {
            return md5($this->property);
        }
    }
    
  2. 使用equals()方法比較兩個物件:

    $obj1 = new MyClass('foo');
    $obj2 = new MyClass('bar');
    
    if ($obj1->equals($obj2)) {
        echo 'Objects are equal';
    } else {
        echo 'Objects are not equal';
    }
    

    輸出結果為:"Objects are not equal",因為$obj1和$obj2的property屬性值不相等。

注意事項:

  • 在比較兩個物件時,需要確保它們使用相同的雜湊演算法實現hash()方法。
  • equals()方法的實現應該根據物件的特定屬性來確定相等性,比如比較物件的某個屬性是否相等。
  • 該函式需要在具體的類中實現Ds\Hashable介面才能使用。
補充糾錯
上一個函式: Ds\Deque::__construct()函式
下一個函式: Ds\Hashable::hash()函式
熱門PHP函式
分享連結