这件事一直困扰着我,我无法在任何地方找到它!
在php和::& - >
之间使用类时有什么区别让我举个例子。
想象一个名为MyClass的类,在这个类中有一个函数myFunction
使用之间有什么区别:
MyClass myclass = new MyClass
myclass::myFunction();
或
MyClass myclass = new MyClass
myclass->myFunction();
谢谢
答案 0 :(得分:11)
MyClass::myFunction(); // static method call
$myclass->myFunction(); // instance method call
答案 1 :(得分:3)
“::”用于调用类上的静态方法。所以,你可以使用:
MyClass::myStaticFunction()
但不是:
MyClass->myStaticFunction()
答案 2 :(得分:2)
如上所述,“::”用于静态方法调用,而“ - >”例如是方法调用
除了使用parent ::访问基类中的函数时,其中“parent ::”可以用于静态和非静态父方法
abstract class myParentClass
{
public function foo()
{
echo "parent class";
}
}
class myChildClass extends myParentClass
{
public function bar()
{
echo "child class";
parent::foo();
}
}
$obj = new myChildClass();
$obj->bar();
答案 3 :(得分:0)
class MyClass {
static function myStaticFunction(...){
...
}
}
//$myObject=new MyClass(); it isn't necessary. It's true??
MyClass::myStaticFunction();