Возможный дубликат:
Ссылка. Что означает этот символ в PHP?
Поэтому я читал книгу « Решения для PHP», «Динамический веб-дизайн», созданный Дэвидом Пауэрсом. Я прочитал короткий раздел об объектно-ориентированном PHP, и мне трудно понять идею оператора ->. Может ли кто-нибудь попытаться дать мне обоснованное объяснение оператора -> в OOP PHP?
Пример:
$westcost = new DateTimeZone('America/Los_Angeles'); $now->setTimezone($westcoast);
Кроме того, более общий пример:
$someObject->propertyName
Оператор ->
в PHP относится либо к функции, либо к переменной внутри класса.
<?php class Example { public $variableInClass = "stringContent"; public function functionInClass() { return "functionReturn"; } } $example = new Example(); var_dump($example->variableInClass); //stringContent var_dump($example->functionInClass()); //functionReturn ?>
Обратите внимание, что если мы говорим о статических классах (разные цели), вы используете ::
вместо:
<?php class Example { public static $variableInClass = "stringContent"; public static function functionInClass() { return "functionReturn"; } } var_dump($example::$variableInClass); //stringContent var_dump($example::functionInClass()); //functionReturn ?>
$someObject->propertyName
можно прочитать как:
возвращаемое значение, хранящееся в propertyName из объекта $ someObject
$someObject->methodName()
можно читать как:
выполнить методName из объекта $ someObject
Классы и объекты 101:
Класс определяется как таковой:
class MyClass { public $value1; public function getValue() { return $this->value; } }
Теперь мы определили класс с единственным свойством и единую функцию. Чтобы использовать их, нам нужно создать «экземпляр» этого объекта:
$myObject = new MyClass();
Чтобы использовать свойство или функцию, мы используем оператор ->
:
echo $myObject->value1; echo $myObject->getValue();
Поместите немного более абстрактно .. функция getValue
определена в этом объекте. Используя оператор- ->
в экземпляре нашего класса, то, что делает PHP, просто вызывает функцию, как и любую другую функцию. Но до того, как она получит вызов $this
она назначается текущему объекту.
Надеюсь, это поможет, если нет .. Я бы просто рекомендовал прочитать об основах ООП.