::和。之间的区别是什么?
可能重复:
参考 - 这个符号在PHP中的含义是什么?
在PHP中,::和 - >有什么区别?
当你尝试访问类中的方法的属性什么是::和 - >之间的区别,并有有关面向对象的编程在PHP某处的操作符的完整引用?
::
是用于静态属性和方法的,例如
MyClass::create();
->
是用于从类中实例化对象的时候,例如
$myObject = new MyClass;
$myObject->create();
在使用::
您可以静态访问一个Class方法,而无需创建该类的实例,如下所示:
Class::staticMethod();
你可以在类的一个实例上使用->
,例如:
$class = new Class();
$class->classMethod();
这是静态和动态属性和方法之间的区别。
观察这段代码以了解它们之间的区别:
class MyClass {
protected $myvar = 0;
public static $othervar = "test";
public function start($value)
{
// because this is not static, we need an instance.
// because we have an instance, we may access $this
$this->myvar = $value;
// although we may still access our static variable:
echo self::$othervar;
}
static public function myOtherFunction ($myvar)
{
// its a static function, so we're not able to access dynamic properties and methods ($this is undefined)
// but we may access static properties
self::$overvar = $myvar;
}
}
文学为你的对话: