get_class __class__ get_called_class 分析记录
2024-10-15 18:13:28
首先看代码:
class A
{ use T {
T::say as aTsay;
} public function say()
{
echo 'a__class__:' . __CLASS__ . '<br>';
echo 'a get_class:' . get_class() . '<br>';
echo 'a get_class this:' . get_class($this) . '<br>';
echo 'a get_called_class:' . get_called_class() . '<br><br>';
static::aTsay();
static::Tsay();
}
} class B extends A
{
use T {
T::say as Tsay;
} public function say()
{
parent::say();
echo 'b__class__:' . __CLASS__ . '<br>';
echo 'b get_class:' . get_class() . '<br>';
echo 'b get_class this:' . get_class($this) . '<br>';
echo 'b get_called_class:' . get_called_class() . '<br><br>'; static::Tsay();
}
} trait T
{
public function say()
{
echo 't__class__:' . __CLASS__ . '<br>';
echo 't get_class:' . get_class() . '<br>';
echo 't get_class this:' . get_class($this) . '<br>';
echo 't get_called_class:' . get_called_class() . '<br><br>';
}
} $b_say = new B();
$b_say->say();
输出结果:
a__class__:A
a get_class:A
a get_class this:B
a get_called_class:B
t__class__:A
t get_class:A
t get_class this:B
t get_called_class:B
t__class__:B
t get_class:B
t get_class this:B
t get_called_class:B
b__class__:B
b get_class:B
b get_class this:B
b get_called_class:B
t__class__:B
t get_class:B
t get_class this:B
t get_called_class:B
基本可以看出:
get_class是更灵活的应用,在没有输入参数的情况下,根__CLASS__是一样的,在输入this的情况下,根get_called_class 是一致的.
__CLASS__ 函数实际所属的类,也就是__CLASS__。无论多少次调用,都不会变的实际输出。
get_called_class 调用函数的类,也就是,程序 $this->method()所在的类
最新文章
- 【solr】之solr界面查询返回距离并排序
- Java多线程基础知识(五)
- ytu 1064: 输入三个字符串,按由小到大的顺序输出(水题,字符串处理)
- golang基础知识之encoding/json package
- libjingle_peerconnection
- Python对整形数字进行加密和解密
- 介绍linux下利用编译bash设置root账号共用的权限审计设置
- JavaWeb笔记——Jsp的指令、内置对象和动作标签
- PostgreSQL的 initdb 源代码分析之二十二
- Instruments性能检测
- France &#39;98
- 微信开发模式 api 接口文档简介
- python—day02
- git之push
- Sql Server语句大全
- go语言语法基础
- JQuery Datatable用法
- nodejs多语句查询
- 自己写的 读写 ini 配置文件类
- DFT
热门文章
- css 绘制三角形
- vue学习:vue+webpack的快速使用指南(新手向)
- (53)Wangdao.com第七天_JavaScript 强制类型转换
- 02_ if_else if 练习
- JS-原型的某些概念
- http跳转htts的htaccess文件设置
- 剑指offer——python【第4题】重建二叉树
- Ehcache 3.7文档—基础篇—Tiering Options
- 泡泡一分钟: Deep-LK for Efficient Adaptive Object Tracking
- C# string contains 不区分大小写