oophp,方法和属性命名

Tes*_*son 2 php oop naming-conventions

在php中,使用之间是否有任何区别

$myClass::method()
Run Code Online (Sandbox Code Playgroud)

$myClass->method()
Run Code Online (Sandbox Code Playgroud)

改变的原因是什么?(我相信->已经存在了很长时间.)

我可以看到::用于方法和->属性的点,反之亦然.

Jac*_*kin 6

::是范围解析运算符,用于访问static类的成员.

-> 是成员运算符,用于访问对象的成员.

这是一个例子:

class Car {
   public $mileage, $current_speed, $make, $model, $year;
   public function getCarInformation() {
      $output = 'Mileage: ' . $this->mileage;
      $output = 'Speed: ' . $this->current_speed;
      $output = 'Make: ' . $this->make;
      $output = 'Model: ' . $this->model;
      $output = 'Year: ' . $this->year;
      return $output; 
   }
}

class CarFactory {

    private static $numberOfCars = 0;

    public static function carCount() {
       return self::$numberOfCars;    
    }

    public static function createCar() {
       self::$numberOfCars++; 
       return new Car();
    }

}    

echo CarFactory::carCount(); //0

$car = CarFactory::createCar();

echo CarFactory::carCount(); //1

$car->year = 2010;
$car->mileage = 0;
$car->model = "Corvette";
$car->make = "Chevrolet";

echo $car->getCarInformation();
Run Code Online (Sandbox Code Playgroud)