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
廣告