$value) { if(!array_key_exists($key, $value2)) return false; if(!self::ValueIsEqual($value, $value2[$key])) return false; } return true; } if(is_object($value1) && is_object($value2)) { $value1 = (array) $value1; $value2 = (array) $value2; return self::ValueIsEqual($value1, $value2); } return $value1 == $value2; } public static function ValueIsEqualByProperties($value1, $value2, $propertiesToCheck = []) { } }