PHP - 类/对象 is_a() 函数



PHP 类/对象 is_a() 函数用于查找对象或类是否属于某个类或子类。如果对象或类是实例,则返回 true;否则返回 false。此函数对于验证面向对象编程中的类型很有用。

语法

以下是 PHP 类/对象 is_a() 函数的语法:

bool is_a(mixed $object_or_class, string $class, bool $allow_string = false)

参数

以下是 is_a() 函数的参数:

  • $object_or_class − 要检查的对象或类名。

  • $class − 类名。

  • $allow_string − 如果设置为 true,则函数将接受类名字符串以及对象。默认值为 false。

返回值

如果 object_or_class 是类对象类型或具有 class 作为超类型,则 is_a() 函数返回 TRUE;否则返回 FALSE。

PHP 版本

is_a() 函数首次出现在 PHP 4.2.0 的核心版本中,在 PHP 5、PHP 7 和 PHP 8 中仍然可以轻松使用。

示例 1

首先,我们将向您展示 PHP 类/对象 is_a() 函数的基本示例,检查对象是否是类 Car 的实例。

<?php
   // Define class here
   class Car {}

   $myCar = new Car();
   
   if (is_a($myCar, 'Car')) {
       echo "Yes, \$myCar is an instance of Car.";
   } else {
       echo "No, \$myCar is not an instance of Car.";
   }
?>

输出

以下是以下代码的结果:

Yes, $myCar is an instance of Car.

示例 2

在下面的 PHP 代码中,我们将使用 is_a() 函数并检查子类的对象是否是父类的实例。

<?php
   // Define class here
   class Vehicle {}
   class Car extends Vehicle {}
   
   $myCar = new Car();
   
   if (is_a($myCar, 'Vehicle')) {
       echo "Yes, \$myCar is an instance of Vehicle.";
   } else {
       echo "No, \$myCar is not an instance of Vehicle.";
   }
?> 

输出

这将生成以下输出:

Yes, $myCar is an instance of Vehicle.

示例 3

在这里,is_a() 函数通过将参数 $allow_string 设置为 true 来检查类名字符串而不是对象。

<?php
   // Define class here
   class Truck {}

   $className = 'Truck';
   
   if (is_a($className, 'Truck', true)) {
       echo "Yes, $className is a valid class name.";
   } else {
       echo "No, $className is not a valid class name.";
   }
?> 

输出

这将创建以下输出:

Yes, Truck is a valid class name
php_function_reference.htm
广告