【每日函式】每日函式(2021.08.20)
阿新 • • 發佈:2021-08-20
一夢千年系列
今日函式
class_alias
、class_exists
、get_called_class
、get_class_methods
、get_class_vars
class_alias1
為類建立一個別名
- 說明
class_alias(string $original, string $alias, bool $autoload = true) : bool
- 引數
original
原來類的名稱
alias
類的別名
autoload
是否自動載入
- 返回值
成功返回true,失敗返回false
- 範例
class A {} class_alias('A', 'B'); $obj1 = new A(); $obj2 = new B(); var_dump($obj1 instanceof $obj2);
以上範例會輸出
bool(true)
- 特別注意
別名和原有的類完全相同
class_exists2
檢查類是否定義
- 說明
class_exists(string $class, bool $autoload = true) : bool
- 引數
class
需要檢查的類名
autoload
是否自動載入
- 返回值
類定義了返回true,否則返回false
- 範例
$res = class_exists('A');
var_dump($res);
以上範例輸出
bool(false)
get_called_class3
獲取後期靜態繫結的類名,經過測試發現動態方法也可以使用
- 說明
get_called_class() : string
- 返回值
返回呼叫方法的類名,如果不是在類中呼叫的則返回false
- 範例
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的方法,不區分靜態和動態
- 說明
get_class_methods(mixed $class) : array
- 引數
class
類的名稱或者物件
- 返回值
返回由方法組成的陣列
- 範例
class A
{
public function test()
{}
protected function demo()
{}
private function hello()
{}
}
$res = get_class_methods('A');
print_r($res);
以上範例輸出
Array
(
[0] => test
[1] => hello1
)
- 特別說明
必須是公共方法,不區分靜態、動態
get_class_vars5
返回由類屬性組成的陣列,屬性名是鍵名,屬性值是鍵值,必須是公共屬性,不區分靜態和動態
- 說明
get_class_vars(mixed $class) : array
- 引數
class
需要操作的類名或者物件
- 返回值
返回由屬性名和屬性值組成的陣列
- 範例
class A
{
public $name = 'swk';
protected $age = 22;
private $sex = 1;
}
$res = get_class_vars('A');
print_r($res);
以上範例輸出
Array
(
[name] => swk
)
- 特別說明
必須是公共屬性,不區分靜態和動態