を命名メソッドとプロパティは、変更の理由は何ですか?oophp、PHPで
$myClass::method()
と
$myClass->method()
を使用しての間に違いがありますか(私は->
が長かったと信じています)
メソッドの場合は::
、プロパティの場合は->
を使用しています。
を命名メソッドとプロパティは、変更の理由は何ですか?oophp、PHPで
$myClass::method()
と
$myClass->method()
を使用しての間に違いがありますか(私は->
が長かったと信じています)
メソッドの場合は::
、プロパティの場合は->
を使用しています。
::
は、スコープ解決演算子で、クラスのメンバーstatic
にアクセスするために使用されます。
->
は、オブジェクトのアクセスメンバーに使用されるメンバー演算子です。ここで
は例です:それはそうではない静的(オブジェクト内から呼ばれていた場合も
parent::__constructor();
:
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();
::
はその親、例えばを呼び出すために、クラス/オブジェクト内でも使用されています)。
class testClass {
var $test = 'test';
function method() {
echo $this->test;
}
}
$test = new testClass();
$test->method();
testClass::method();
出力がされるようなもの:
はこのことを考えてみましょう
test
Fatal error: Using $this when not in object context in ... on line 7
::
が上のメソッドやプロパティを呼び出すために使用されている->
ながら、クラスに静的呼び出しを行うためですクラスの特定のインスタンス。
ちなみに、私はPHPはあなたにこのようなパースエラーを与えるので、あなたが$test::method()
を行うことができると信じていない:
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in ... on line 14
はこちらを参照:http://stackoverflow.com/q/4361598/50079 – Jon