PHP中的self与static的区别
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍"PHP中的self与static的区别",在日常操作中,相信很多人在PHP中的self与static的区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
软件开发各种需求
新疆大学网络技术
机器人软件开发教程
赛码软件开发编程题
win7服务器pHp配置
神龟捕鱼软件开发
服务器安全保证
软件开发生命周期技术
腾讯云服务器关联会怎么样
服务器能用pc机吗
服务器有防盗
镇江营销软件开发项目
阴阳师不同服务器能一起玩吗
广西区网络安全总队长
邮件服务器集群
自己建立数据库集群
贵州网络技术分类市场价
特点翻译软件开发
如何提升数据库运维
伍道共创互联网科技
服务器 数据库 管理
神龟捕鱼软件开发
服务器管理口远程java
关于网络安全知识的讲话
中国铁建网络安全培训
欧盟gmp附录数据库
软件开发界面标准规范
天津私人服务器托管云服务器
存储服务器30T有多大功率
分区表参数数据库