PHP - 類/物件 get_class_vars() 函式



PHP 類/物件 **get_class_vars()** 函式用於獲取類的預設屬性(變數)。它允許你訪問靜態屬性和預設值,無需建立類例項。此函式對於檢查類屬性非常有用。

語法

以下是 PHP 類/物件 **get_class_vars()** 函式的語法:

array get_class_vars ( string $class )

引數

此函式接受 **$class** 引數,它是一個字串,表示要訪問其預設屬性的類的名稱。

返回值

**get_class_vars()** 函式返回一個關聯陣列,其中包含類預設的公共屬性。結果陣列元素的形式為 varname => value。

PHP 版本

**get_class_vars()** 函式首次出現在 PHP 4的核心版本中,並在 PHP 5、PHP 7 和 PHP 8 中繼續良好地執行。

示例 1

這是一個示例,演示如何使用 PHP 類/物件 **get_class_vars()** 函式獲取簡單類的預設屬性。

<?php
   // Declare Car class here
   class Car {
      public $color = 'red';
      public $model = 'Sedan';
   }
  
   $vars = get_class_vars('Car');
   print_r($vars);
?>

輸出

以下是以下程式碼的輸出:

Array
(
   [color] => red
   [model] => Sedan
)

示例 2

此示例演示如何使用 **get_class_vars()** 函式獲取具有多種資料型別的類 House 的預設變數。

<?php
   // Declare House class here
   class House {
      public $rooms = 3;
      public $price = 2500000;
      public $location = 'Mumbai';
   }
    
   $vars = get_class_vars('House');
   print_r($vars);
?> 

輸出

這將生成以下輸出:

Array
(
   [rooms] => 3
   [price] => 2500000
   [location] => Mumbai
)

示例 3

此示例顯示 **get_class_vars()** 函式僅返回公共屬性,不返回私有或受保護屬性。

<?php
   // Declare Person class here
   class Person {
      public $name = 'Amit';
      private $age = 33;
      protected $gender = 'Male';
  }
  
  $vars = get_class_vars('Person');
  print_r($vars);
?> 

輸出

這將產生以下輸出:

Array
(
   [name] => Amit
)

示例 4

此程式碼建立了一個名為 ExampleClass 的類,它具有多個屬性,其中一些屬性具有預設值。它使用 **get_class_vars()** 獲取和列印類公共屬性的預設值,這發生在建構函式修改它們之前。

<?php
   class ExampleClass {

      var $property1; // this has no default value...
      var $property2 = "abc";
      var $property3 = 200;
      private $property4;
  
      // constructor
      function __construct() {
          // change some properties
          $this->property1 = "foo";
          $this->property2 = "bar";
          return true;
      }
  
  }
  
  $example_object = new ExampleClass();
  
  $class_vars = get_class_vars(get_class($example_object));
  
  foreach ($class_vars as $name => $value) {
      echo "$name : $value\n";
  }
?> 

輸出

以下是上述程式碼的輸出:

property1 : 
property2 : abc
property3 : 200
php_function_reference.htm
廣告