发布网友 发布时间: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这些高频关键字,对于编程实践尤为重要。
祝您编程愉快!