Оператор instanceof
в PHP используется для сравнения объектов. Этот оператор проверяет, является ли обозреваемый объект экземпляром указанного класса.
class MyClass {}
$myObject = new MyClass();
if ($myObject instanceof MyClass) {
echo 'Yes, $myObject is an instance of MyClass';
}
В приведенном выше примере переменная $myObject
является экземпляром класса MyClass. Поэтому условие if ($myObject instanceof MyClass)
возвращает true
и выводит сообщение - 'Yes, $myObject is an instance of MyClass'.
Операторы ==
и ===
в PHP используются не столько для сравнения объектов, сколько для сравнения значений и типов. Оператор ==
проверяет равенство значений, независимо от их типов, а оператор ===
проверяет равенство значений и их типа. В то время как оператор <=>
или космический корабль, как его прозвали разработчики, используется для сравнения двух выражений. Этот оператор возвращает -1, 0 или 1, если левое выражение соответственно меньше, равно или больше правого.
Однако, когда дело доходит до сравнения объектов, нет ничего лучше, чем использовать оператор instanceof
. Это является наилучшей практикой, поскольку он обеспечивает строгую проверку типов и является надежным способом сравнения объектов в PHP.