2016-07-27 3 views
2

PHP 사용자가 경험이 많은 분이라면 분명히 사과드립니다. 그러나 필자는 필자의 학습 여정에서 중요한 부분을 놓쳤다 고 생각합니다. 객체를 사용할 때 ->를 통해 함수를 호출하거나 ::를 사용하여 호출하려면 어떻게해야합니까? 지금 나는 -> 메서드를 사용하고 있었지만 :: 메서드를 사용하여 코드를 보았습니다. 모든 통찰력이나 설명은 크게 감사드립니다!PHP에서는 언제 사용해야합니까 :: 언제 사용합니까 ->

+2

정적 범위입니다. 해당 링크에서 더 많은 정보를 얻을 수 있습니다. [php manual oop5 static] (http://php.net/manual/en/language.oop5.static.php) [php manual variable scope] (http://php.net/manual/en/language) .variables.scope.php) [php manual late static bindings] (http://php.net/manual/en/language.oop5.late-static-bindings.php) 또한 점으로 호출하는 클래스 constans 너무. –

+0

감사합니다. 해당 링크를 꼭 읽어야합니다! –

답변

1

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

은 - 당신이 클래스의 객체를 생성 할 때 사용할 필요가 너무 객체 방법 및 속성>입니다 ->

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

::이다 정적 방법의 속성 클래스입니다. 즉, 사용하기 위해 객체를 만들 필요가 없습니다. 즉, 객체를 만들 필요가 없습니다.

someClass::someMethod() 
+0

문제를 해결해 주셔서 감사합니다. 그래서 기본적으로 "정적"인 객체를 참조 할 때 "::"을 사용합니다. 그러나 변수에 인스턴스화 된 객체를 가질 때는 ->를 사용하여 참조합니다. –

+0

@OliverChalk 아니요, 클래스 'members with'::' – zerkms

+0

을 참조하십시오. 아니요, 정적 객체와 같은 것은 없습니다. 수업이 있습니다. 클래스에서 객체를 생성하는 대신 클래스를 직접 호출 할 수 있습니다. someClass :: someMethod() - 이것은 class * someClass *의 정적 메쏘드 * someMethod를 호출합니다. – nospor

5

당신이 정적 방법이나 변수를 호출 할 때, 또는 (현재의 클래스가 확장 된 경우) 부모 클래스를 호출 할 때 당신은 :: 사용합니다.

클래스를 인스턴스화해야하는 메서드 나 변수를 호출 할 때 ->을 사용합니다.

살펴보기 클래스 및 개체 self and $this 및 변수 범위 Static properties and variables.

관련 문제