OOP中的静态和动态变量/方法是什么?

Kri*_*ann 0 php oop dynamic static-members

我想更好地理解OOP中的基本概念.面向对象编程中的静态和动态变量和方法是什么?例如,使用$ this与双冒号(::)之间的区别是什么?

$ this($ this-> a_method())

  • 好处: ?.
  • 缺点:?......"这个"不是自我记录的,如:$this->method_from_an_extended_class().

双冒号(someclass :: a_method())

  • 好处: ?
  • 缺点:?

cle*_*tus 6

"静态"和"动态"不是正确的描述.

->表示实例函数实例数据,表示函数或数据具有隐式$this引用.换句话说,你指的是特定对象中的函数或变量.

::表示类函数类变量.这与全局函数或变量非常相似,因为没有隐式$this引用.该类的所有实例共享该函数或变量.

"动态"将更准确地描述,例如,PHP重载,您可以"动态"创建变量,例如,使用魔术方法__get()__set()(当您尝试访问无法找到的属性时调用;你可以重载这些方法,基本上假装所请求的成员存在).