2016-07-27 6 views
2

Прошу прощения, если это кажется очевидным для более опытных пользователей PHP, однако, я считаю, что я пропустил важный блок в своем учебном путешествии. При использовании объектов, как мне теперь вызывать функцию через -> или называть ее с помощью ::. На данный момент я только использовал метод ->, но я нашел код, используя метод ::. Любое понимание или объяснение очень ценится!В PHP, когда я использую :: и когда я использую ->

+2

Его статический охват. Вы можете получить дополнительную информацию по этим ссылкам. [php manual oop5 static] (http://php.net/manual/en/language.oop5.static.php) [область переменных переменных PHP] (http://php.net/manual/en/language .variables.scope.php) [устаревшие статические привязки php вручную] (http://php.net/manual/en/language.oop5.late-static-bindings.php) О, также, как и константы класса, вызывающие точки слишком. –

+0

Спасибо, я обязательно прочитаю эти ссылки! –

ответ

1

http://php.net/manual/en/language.oop5.php

-> для объектов методов и свойств поэтому при создании объекта класса нужно использовать ->

$someObject = new someClass(); 
$someObject->someMethod(); 

:: для статических метода и свойства класс, что означает, что вам не нужно создавать объект для его использования:

someClass::someMethod() 
+0

Спасибо, что разобрался. Таким образом, в основном, когда вы ссылаетесь на объект, который является «статическим», вы используете «::» Однако, когда у вас есть объект, созданный в переменной, вы ссылаетесь на него с помощью ->. –

+0

@OliverChalk no, вы ссылаетесь на члены класса с '::' – zerkms

+0

Нет, такой вещи, как статический объект, нет. Есть класс. Вы можете напрямую вызвать класс вместо создания объекта из класса. someClass :: someMethod() - это статический метод вызова * someMethod * класса * someClass *. Вы не создаете объекты для вызова статических методов класса – nospor

5

Вы используете :: при вызове метода или переменной статического или при вызове родительского класса (если текущий класс расширен).

Вы используете ->, когда вы вызываете метод или переменную, которую должен быть создан экземпляр класса.

Посмотрите Классы и Предметы self and $this и Области переменной Static properties and variables.

Смежные вопросы