PHP中的self与static的区别
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,这篇文章主要介绍"PHP中的self与static的区别",在日常操作中,相信很多人在PHP中的self与static的区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年12月04日PHP中的self与static的区别
这篇文章主要介绍"PHP中的self与static的区别",在日常操作中,相信很多人在PHP中的self与static的区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"PHP中的self与static的区别"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
谈PHP中的self与static
之前的文章中有介绍过self、static和parent的传递问题。今天,通过一个小实验,我们来看看self和static操作变量的问题。
class A
{
public static $name = "I'm A!";
public function selfName()
{
echo self::$name;
}
public function staticName()
{
echo static::$name;
}
}
class B extends A{
public static $name = "I'm B!";
}
$b = new B();
$b->selfName(); // I'm A!
$b->staticName(); // I'm B!
class C extends A{
public static $name = "I'm C!";
public function selfName()
{
echo self::$name;
}
}
$c = new C();
$c->selfName(); // I'm C!
$c->staticName(); // I'm C!
通过这个简单的例子,我们可以看出两点:
self写在哪个类里面,它固定指向的就是当前的这个类 static就是哪个对象调用它,它指向的就是这个调用者
从代码中我们可以看出,B类没有重写selfName()方法,所以B类调用selfName()时调用的是父类A的selfName()方法,self在这个方法中指向的是A类。而C类重写了父类的selfName()方法,在调用C类的selfName()时,这里面的self指向的便是C类自己了。
static就比较简单了,例子中都是由B类和C类来调用的A类的staticName()方法,根据谁调用就指向谁来看,输出的结果符合我们的预期,B类对象指向的是B类,C类对象指向的是C类。
到此,关于"PHP中的self与static的区别"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
指向
方法
学习
对象
就是
问题
例子
文章
更多
帮助
实用
接下来
代码
变量
时调
是由
有介绍
理论
用者
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发实验室 英文
小云服务器商
我的世界如何在服务器上开材质包
任知行网络安全
河南网络安全周闭幕
会计报税软件开发
网络安全法是什么时间施行的
临沂鹰盟网络技术有限公司
软件开发国家政策风险
我的世界失落世界服务器号
滴滴车型数据库怎么导出来
教师资格证服务器时间
数据库工程师 中级
汝城软件开发
现在网络技术越来越发达
宁波软件开发薪酬
查询达梦数据库的版本
软件工程在软件开发中的意义
服务器怎么更改默认文件
超大规模服务器虚拟化系统
贵州软件开发有限公司
官兵手机网络安全宣传周活动
服务器主板接口插槽有哪些
dl350服务器
键值数据库是靠表格存储数据吗
地下城堡服务器怎么看
cfhd服务器连接错误怎么办
在数据库查询语句怎么写
开展网络安全主题教育的目的
基站和服务器哪个牛逼