我对 PHP 很满意,但只是程序性的。所以我决定冒险学习面向对象。我掌握了它,并且非常喜欢它。
在 PHP.net 上,我一直将面向对象视为mysqli::query
.
但是,我看到的每个示例都使用mysqli->query
了我一直使用的示例。
今天,我碰到一个实际看到::
用在课堂上的例子。
::
所以现在,我的问题是,和之间有区别->
吗?"
就像和之间的区别'
吗?
我对 PHP 很满意,但只是程序性的。所以我决定冒险学习面向对象。我掌握了它,并且非常喜欢它。
在 PHP.net 上,我一直将面向对象视为mysqli::query
.
但是,我看到的每个示例都使用mysqli->query
了我一直使用的示例。
今天,我碰到一个实际看到::
用在课堂上的例子。
::
所以现在,我的问题是,和之间有区别->
吗?"
就像和之间的区别'
吗?
::
用于调用静态方法,->
用于实例方法
::是“范围解析运算符”(也恰当地命名为 Paamayim Nekudotayim),通常用于执行静态(这意味着您将在类本身的上下文中调用方法,而不是对象)方法调用。但是,此规则也有例外,例如尝试从覆盖的方法调用父方法:
parent::foo(); // uses same context as when the method itself was called
它还允许您引用类的静态属性,例如静态属性和常量。
ClassName::FOO;
ClassName::$property = "bar";
但是, ->用于引用实际对象实例中的属性或方法,并且始终需要在运算符左侧的对象实例(例如 $this)。