“ - >”和“::”在PHP中的MySQLi OOP的区别(Difference betwe

2019-07-31 14:52发布

谁能告诉之间的差异mysqli->commitmysqli::commit

在头这个网页是mysqli::commit ,但在例子他们使用mysqli->commit

Answer 1:

->指的是一个对象的成员时使用。

::是范围解析操作符 ,并且用来指一类的静态成员。

考虑下面的类:

class FooBar {
    public static function fizz() {
        echo "Fizz";
    }

    public function buzz() {
        echo "Buzz";
    }
}

你会调用函数buzz()使用->

$myFooBar = new FooBar();
$myFooBar->buzz();

但会用::来调用functon fizz()因为它是一个静态成员(不需要类的实例被称为成员):

FooBar::fizz();

此外,当我们在谈论静态成员与实例化成员之间的差异,您不能使用$this来指代当前实例静态成员中。 您可以使用self代替(没有前导$ ),它指的是当前类,或parent ,如果你想引用父类,或者如果你有PHP 5.3.0工作的乐趣, static (它允许后期静态绑定)。


该文档使用::指对函数的类中作为标题的类名称不是类的一个实例。 仍然使用相同的例子,一个文件条目参照功能buzz()将使用下面的标头:

FooBar::buzz

但是,除非文档指定它是一个静态成员,您将需要使用->在一个实例来调用它:

$myFooBar = new FooBar();
$myFooBar->buzz();


Answer 2:

::用于静态方法

->用于对象的方法,如果您已经有实例。



Answer 3:

如果你有一个对象的实例,你用 - >引用此实例中的方法:

$foo = new Foo();
$foo->bar();

使用::而无需创建对象的实例调用静态方法:

Foo::bar();

静态方法无法通过指的是它的当前实例$this ,而是可以通过使用指本身(当前类) self



Answer 4:

::指定一个静态(类)方法,这是不实际实例化对象调用。 ->指定一个实例(对象)方法,为此,需要实例化以能够使用的对象。

因此,举例来说,如果你有一个变量$m这是类的一个实例mysqli ,你会打电话commit$m->commit()或者你可以说静态调用commit MySQLi::commit()



Answer 5:

::访问类的功能,而不实例化的对象。



Answer 6:

在mysqli->提交,mysqli的是库MySQLi中的mysqli一个实例::提交调用静态方法



Answer 7:

mysqli->提交的是一个公共函数和mysqli的::提交是静态函数两者的mysqli类的PHP对象符号。



Answer 8:

通常在php.net文档::意味着这个类有一个方法。 对于使用之实践必须遵循这个例子,使用 - > sintax。



Answer 9:

->操作者为对象的属性

::运算符是类属性



文章来源: Difference between “->” and “::” in PHP MySQLi OOP