我试图更好地理解 OOP 中的基本概念。
面向对象编程中的静态和动态变量和方法是什么?
例如,使用 $this 与使用双冒号 (::) 之间有什么区别?
$this($this->a_method())
- 优点: ?。
- 缺点: ? ...“这个”不是自我记录的,如下所示:
$this->method_from_an_extended_class()
.
双冒号(someclass::a_method())
“静态”和“动态”并不是正确的描述。
->
表示一个实例函数 or 实例数据,这意味着函数或数据具有隐式$this
参考。换句话说,您引用的是特定对象中的函数或变量。
::
表示一个类函数 or 类变量。这与全局函数或变量非常相似,因为没有隐式的$this
参考。该类的所有实例共享该函数或变量。
“动态”将是更准确的描述,例如,PHP 重载 https://www.php.net/__callstatic您可以在其中“动态”创建变量,例如使用魔术方法__get()
and __set()
(当您尝试访问无法找到的属性时会调用这些方法;您可以重载这些方法以假装所请求的成员存在)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)