1. 程式人生 > 其它 >【每日函式】每日函式(2021.08.20)

【每日函式】每日函式(2021.08.20)

一夢千年系列

今日函式class_aliasclass_existsget_called_classget_class_methodsget_class_vars

class_alias1

為類建立一個別名

  1. 說明
class_alias(string $original, string $alias, bool $autoload = true) : bool
  1. 引數

original原來類的名稱

alias類的別名

autoload是否自動載入

  1. 返回值

成功返回true,失敗返回false

  1. 範例
class A {}

class_alias('A', 'B');

$obj1 = new A();
$obj2 = new B();

var_dump($obj1 instanceof $obj2);

以上範例會輸出

bool(true)
  1. 特別注意

別名和原有的類完全相同

class_exists2

檢查類是否定義

  1. 說明
class_exists(string $class, bool $autoload = true) : bool
  1. 引數

class需要檢查的類名

autoload是否自動載入

  1. 返回值

類定義了返回true,否則返回false

  1. 範例
$res = class_exists('A');

var_dump($res);

以上範例輸出

bool(false)

get_called_class3

獲取後期靜態繫結的類名,經過測試發現動態方法也可以使用

  1. 說明
get_called_class() : string
  1. 返回值

返回呼叫方法的類名,如果不是在類中呼叫的則返回false

  1. 範例
class A
{
    public static function test()
    {
        var_dump(get_called_class());
    }
}

class B extends A
{}

A::test();

B::test();

以上範例輸出

string(1) "A"
string(1) "B"

get_class_methods4

返回由類中方法名組成的陣列,必須是public的方法,不區分靜態和動態

  1. 說明
get_class_methods(mixed $class) : array
  1. 引數

class類的名稱或者物件

  1. 返回值

返回由方法組成的陣列

  1. 範例
class A
{
    public function test()
    {}

    protected function demo()
    {}

    private function hello()
    {}
}

$res = get_class_methods('A');

print_r($res);

以上範例輸出

Array
(
    [0] => test
    [1] => hello1
)
  1. 特別說明

必須是公共方法,不區分靜態、動態

get_class_vars5

返回由類屬性組成的陣列,屬性名是鍵名,屬性值是鍵值,必須是公共屬性,不區分靜態和動態

  1. 說明
get_class_vars(mixed $class) : array
  1. 引數

class需要操作的類名或者物件

  1. 返回值

返回由屬性名和屬性值組成的陣列

  1. 範例
class A
{
    public $name = 'swk';
    protected $age = 22;
    private $sex = 1;
}

$res = get_class_vars('A');

print_r($res);

以上範例輸出

Array
(
    [name] => swk
)
  1. 特別說明

必須是公共屬性,不區分靜態和動態