Loading...
墨滴

leruge

2021/08/20  阅读:39  主题:默认主题

【每日函数】每日函数(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. 特别说明

必须是公共属性,不区分静态和动态

leruge

2021/08/20  阅读:39  主题:默认主题

作者介绍

leruge