PHP - 类/对象 get_class_methods() 函数



PHP 类/对象 get_class_methods() 函数用于以数组的形式返回特定类或对象的方法名称。此函数对于提供可用于特定对象或类的所有方法的列表非常有用。

语法

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

array get_class_methods( object|string $object_or_class )

参数

此函数接受 $object_or_class 参数,它是类名或对象实例。

返回值

get_class_methods() 函数返回为类名指定的类定义的方法名称数组。如果发生错误,则返回 NULL。

PHP 版本

get_class_methods() 函数首次引入到 PHP 4 核心,并在 PHP 5、PHP 7 和 PHP 8 中继续轻松运行。

示例 1

首先,我们将向您展示 PHP 类/对象 get_class_methods() 函数的基本示例,以从简单类中获取方法。该函数仅返回公共函数,因此 method3 将不会包含在内,因为它是一个私有方法。

<?php
   // Declare MyClass here
   class MyClass {
      public function method1() {}
      public function method2() {}
      private function method3() {}
   }
    
   $methods = get_class_methods('MyClass');
   print_r($methods);
?>

输出

以下是以下代码的结果:

Array
(
    [0] => method1
    [1] => method2
)

示例 2

在下面的 PHP 代码中,我们将尝试使用 get_class_methods() 函数并从对象实例中获取方法。

<?php
   // Declare MyClass here
   class MyClass {
      public function signUp() {}
      public function signIn() {}
   }
    
   $obj = new MyClass();
   $methods = get_class_methods($obj);
   print_r($methods);
?> 

输出

这将生成以下输出:

Array
(
  [0] => signUp
  [1] => signIn
)

示例 3

此示例演示了 get_class_methods() 函数的工作原理,并从父类继承方法。

<?php
   // Declare ParentClass here
   class ParentClass {
      public function parentMethod() {}
   }
    
   // Declare ChildClass here
   class ChildClass extends ParentClass {
     public function childMethod() {}
   }
    
   $methods = get_class_methods('ChildClass');
   print_r($methods);
?> 

输出

这将创建以下输出:

Array
(
    [0] => childMethod
    [1] => parentMethod
)

示例 4

此代码创建一个名为 Myclass 的类,其中包含一个构造函数和两个方法(function1 和 function2)。它使用 get_class_methods() 获取并打印类中所有方法的名称。

<?php
  // Declare Myclass here
  class Myclass {

      // constructor
      function __construct()
      {
         return(true);
      }

      // Declare function 1
      function function1()
      {
         return(true);
      }

      // Declare function 2
      function function2()
      {
         return(true);
      }
   }

   $class_methods = get_class_methods(new myclass());

   foreach ($class_methods as $method_name) {
      echo "$method_name\n";
   }
?> 

输出

以下是上述代码的输出:

__construct
myfunc1
myfunc2
php_function_reference.htm
广告