php获取父类方法名,PHP 获取父/子类的类名

在开发中,要获取当前的类名,我们通常会使用预定义常量 __CLASS__ 。

但如果出现在多个类存在继承关系,我们通常就不那么方便获取相关的类名了。

本身为基类,获取子类名get_class() 用于实例调用,加入参数 ($this) 可解决子类继承调用的问题,而 get_called_class() 则是用于静态方法调用。《PHP的继承方法如何获取子类名?》<?php

/**

* 基类

*/

class A

{

public function __construct()

{

// 实例化调用情况

echo get_class($this);

}

public static function name()

{

// 静态方法调用时

echo get_called_class();

}

}

/**

* 子类,产生继承关系

*/

class B extends A

{

}

$objB = new B(); // 输出 B

B::name(); // 输出 B

静态方法

本身作为基类的静态方法被调用时,可以使用 get_called_class()函数(PHP 5 >= 5.3.0, PHP 7)

get_called_class — 后期静态绑定(”Late Static Binding”)类的名称

get_called_class ( void ) : string

获取静态方法调用的类名。

非静态方法

在基类方法被实例化之后调用时,可以使用 get_class() 函数,并把 $this 作为参数传入。(PHP 4, PHP 5, PHP 7)

get_class — 返回对象的类名

get_class ([ object $object = NULL ] ) : string

返回对象实例 object 所属类的名字。https://www.php.net/manual/zh/function.get-class.php

本身为子类,获取基类名

使用 get_parent_class() 方法可以获取基类的类名。(PHP 4, PHP 5, PHP 7)

get_parent_class — 返回对象或类的父类名

get_parent_class ([ mixed$obj ] ) : stringclass C {

}

class A extends C{

public function test() {

echo get_parent_class();// 获取父类名

}

}

(new A)->test() // 输出 C

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值