PHP中的self与static的区别
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"PHP中的self与static的区别",在日常操作中,相信很多人在PHP中的self与static的区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
云南咖啡
互联网科技工作委员会毛军
上海互联网科技有限公司
金融科技 互联网金融
奇酷互联网科技
百单互联网科技有限公司
唐信互联网科技 大连
上海卓越科技 互联网
成都狮子座互联网科技
互联网金融和金融科技
丰台科技园 互联网公司
中正互联网科技招聘
互联网科技公司的市场部门
互联网经济与金融科技
广州千川互联网科技有限公司
富国互联网科技002692
青岛易易互联网科技
恒生互联网科技趋势
利用互联网等科技手段
互联网 科技节活动 微视频大赛
国智互联网科技
安徽鑫晟辉互联网科技
互联网科技网站
哈尔滨新华互联网科技
济南和联互联网科技有限公司
博兴的互联网电子科技公司
燊美集互联网科技有限公司
互联网数据科技专业
互联网高科技行业有哪些企业
互联网的黑科技实验室