PHP MySQLi OOP 中“->”和“::”之间的区别
谁能分辨出 和 之间的区别?mysqli->commit
mysqli::commit
此页面中的标头是 ,但在示例中,它们使用 。mysqli::commit
mysqli->commit
谁能分辨出 和 之间的区别?mysqli->commit
mysqli::commit
此页面中的标头是 ,但在示例中,它们使用 。mysqli::commit
mysqli->commit
->
在引用对象的成员时使用。
::
是作用域解析运算符,用于引用类的静态成员。
请考虑以下类:
class FooBar {
public static function fizz() {
echo "Fizz";
}
public function buzz() {
echo "Buzz";
}
}
您可以使用以下命令调用该函数:buzz()
->
$myFooBar = new FooBar();
$myFooBar->buzz();
但是将用于调用 functon ,因为它是一个静态成员(不需要调用该类的实例的成员):::
fizz()
FooBar::fizz();
此外,当我们讨论静态成员与实例化成员之间的区别时,您不能使用来引用静态成员中的当前实例。您可以使用 self
(无前导 )来表示当前类,或者如果您想要引用父
类,或者如果您有幸使用 PHP 5.3.0 静态(允许后期静态
绑定),则可以使用父类。$this
$
文档用于引用类中的函数,因为标头中的类名不是类的实例。仍然使用相同的示例,引用该函数的文档条目将使用以下标头:::
buzz()
FooBar::buzz
但是,除非文档指定它是静态成员,否则您需要在实例上使用它来调用它:->
$myFooBar = new FooBar();
$myFooBar->buzz();
::
用于静态方法。
->
用于对象的方法(如果您已有实例)。