::和。之间的区别是什么?

可能重复:
参考 - 这个符号在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;
    }
}

文学为你的对话:

  • http://php.net/manual/en/language.oop5.php
  • 什么是OOP中的静态和动态变量/方法?
  • 链接地址: http://www.djcxy.com/p/58013.html

    上一篇: What is the difference between :: and

    下一篇: Difference between :: and