PHP new static 和 new self详解
发布时间 - 2026-01-10 23:09:30 点击率:次最近在一个视频的评论被问到一个小问题:这里选择用static 而不是self有特殊的考虑么?或者我们可以这样转换一下问题:

PHP 的 new static 和 new self 具体有什么?
其实这个来看一个例子应该就很清晰了:
class Father {
public static function getSelf() {
return new self();
}
public static function getStatic() {
return new static();
}
}
class Son extends Father {}
echo get_class(Son::getSelf()); // Father
echo get_class(Son::getStatic()); // Son
echo get_class(Father::getSelf()); // Father
echo get_class(Father::getStatic()); // Father
这里面注意这一行 get_class(Son::getStatic()); 返回的是 Son 这个 class,可以总结如下:
new self
1.self返回的是 new self 中关键字 new 所在的类中,比如这里例子的 :
public static function getSelf() {
return new self(); // new 关键字在 Father 这里
}
始终返回 Father。
new static
2.static 则上面的基础上,更聪明一点点:static 会返回执行 new static() 的类,比如 Son 执行 get_class(Son::getStatic()) 返回的是 Son, Father 执行 get_class(Father::getStatic()) 返回的是 Father
而在没有继承的情况下,可以认为 new self 和 new static是返回相同的结果。
Tips: 可以用一个好的 IDE 来直接看注释。比如 PhpStorm:
Happy Hacking
# new
# self
# static
# php
# static和self
# PHP中new static()与new self()的区别异同分析
# php self
# $this
# const
# ->的使用
# php类中的$this
# final
# self这几个关键字使用方法
# PHP中new static() 和 new self() 的区别介绍
# PHP中static关键字以及与self关键字的区别
# PHP面向对象中new self()与 new static()的区别浅析
# 浅谈PHP中new self()和new static()的区别
# php类中static与self的使用区别浅析
# 的是
# 有什么
# 基础上
# 可以用
# 而在
# 我们可以
# 问到
# 这里面
# 这一行
# 类中
# 很清晰
# 而不是
# 情况下
# 更聪明
# brush
# class
# public
# Father
# extends
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Laravel如何处理表单验证?(Requests代码示例)
zabbix利用python脚本发送报警邮件的方法
如何为不同团队 ID 动态生成多个非值班状态按钮
,网页ppt怎么弄成自己的ppt?
如何基于PHP生成高效IDC网络公司建站源码?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
装修招标网站设计制作流程,装修招标流程?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何基于云服务器快速搭建个人网站?
JavaScript如何实现类型判断_typeof和instanceof有什么区别
如何确保西部建站助手FTP传输的安全性?
如何正确选择百度移动适配建站域名?
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
如何在阿里云部署织梦网站?
公司网站制作价格怎么算,公司办个官网需要多少钱?
网站图片在线制作软件,怎么在图片上做链接?
香港服务器WordPress建站指南:SEO优化与高效部署策略
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Laravel怎么为数据库表字段添加索引以优化查询
jquery插件bootstrapValidator表单验证详解
Android滚轮选择时间控件使用详解
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
Laravel如何处理文件下载请求?(Response示例)
如何在建站之星网店版论坛获取技术支持?
如何用PHP快速搭建CMS系统?
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
香港网站服务器数量如何影响SEO优化效果?
Android使用GridView实现日历的简单功能
中国移动官方网站首页入口 中国移动官网网页登录
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
EditPlus中的正则表达式实战(5)
如何快速搭建自助建站会员专属系统?
Laravel如何实现文件上传和存储?(本地与S3配置)
如何实现javascript表单验证_正则表达式有哪些实用技巧
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Android利用动画实现背景逐渐变暗
如何在IIS7中新建站点?详细步骤解析
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
高防服务器如何保障网站安全无虞?
javascript基本数据类型及类型检测常用方法小结
Laravel如何使用模型观察者?(Observer代码示例)
如何用PHP快速搭建高效网站?分步指南
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
文字头像制作网站推荐软件,醒图能自动配文字吗?
网站制作价目表怎么做,珍爱网婚介费用多少?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】

