3分钟短文 | PHP new self 跟 new static 啥区别?

发布网友 发布时间:4小时前

我来回答

1个回答

热心网友 时间:3分钟前

在PHP类创建过程中,self和static作为类本身的引用与类对象的引用使用上存在细微差别。尤其在类继承时,self可能带来意外结果,因此建议使用static作为类本身的引用。

self总是指向new关键字声明的类,而static在静态绑定中可指向层级结构中的任意类。例如,类B继承了类A的方法,对于get_self方法,返回类A本身。而static返回调用者的类,谁调用,static就指向谁。而self持续指向声明的类。

实例中,类A使用static静态方法,动态方法则需要函数get_class获取类名。方法create2使用new static(),返回类B本身。方法create1使用get_class($this)通过对象本身获取类名,返回类B本身。

区分self与静态引用的关键在于,self无需实例化即可使用其方法,而static需要实例化后作为对象的引用。在属性赋值时,只能使用非静态绑定的对象,self则能使用。

正确写法中,self引用类本身,调用类静态方法也完全可行。

在程序架构中,基类设计至关重要,需要详细规划和细分业务关系。熟练掌握self, static, $this这些高频关键字,对于编程实践尤为重要。

祝您编程愉快!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com