이중 콜론은 일반적으로 static메서드 및 static변수를 호출할 때 사용됩니다. 이때 클래스를 인스턴스화할 필요는 없습니다. 대신 화살표 연산자 ->를 사용할 때 클래스를 인스턴스화해야 합니다(또는 클래스 내부에서 호출할 수 있습니다.)
이중 콜론(::)은 위치 액세스 기호입니다. 이는 단지 정적 메서드와 변수를 의미하는 것이 아닙니다. 그런데 결장의 왼쪽에 있는 것이 결장의 오른쪽에 있는 것을 부른다는 뜻이다. 그런 의미죠. 그래서. . $self는 왼쪽에 쓸 수 없습니다. $self가 먼저 구문 분석되기 때문에 $self 변수가 이전에 정의되지 않은 한 $self는 자신을 가리킵니다.
최신 버전의 PHP. 이중 콜론은 이 기능을 정확히 따르기 위해 사용됩니다. . 다음으로 대체 가능 - > object를 호출하여 변수를 가져옵니다. 위치 표시기이기 때문입니다. .
은 객체의 메서드와 속성을 구별하고 클래스의 정적 메서드와 정적 변수에 액세스하는 것입니다. 클래스의 정적 메서드와 정적 변수는 클래스에 공개되어 인스턴스화 없이 액세스할 수 있습니다. 객체의 속성은 각 클래스마다 다르므로 먼저 인스턴스화해야 합니다. C++, JAVA 등 다른 언어에서도 마찬가지입니다. (물론 그들이 제공하는 액세스 기호는 다를 수 있습니다.)
- >는 객체의 메서드와 속성에 액세스하는 것이고, ::는 액세스하는 것입니다. 클래스의 정적 메서드와 정적 변수
-> 객체 액세스 및 ::위치 액세스
모두가 이론적 부분에서 이전에 말했고 실제로 정확합니다. 하지만 PHP는 조금 다릅니다.
기본 구성에서 php는 엄격한 요구 사항이 없습니다.: 정적 메서드를 호출해야 합니다.
다음 코드를 테스트해 보면 알 수 있습니다
class t{ public $v = 1; public function getVar(){ return 1;//$this->v; } } class xxxxx { public function actionIndex() { $x = t::getVar(); $t = new t(); $x = $t->getVar(); } } 作者:楚天乐 链接:https://www.zhihu.com/question/19782824/answer/35943595 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
위 내용은 PHP에서 이중 콜론 범위 구문 분석 연산자와 화살표 -> 연산자의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!