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