이 기사는 PHP의 비착신 통화 및 착신 전환에 대한 코드 예제를 제공합니다. 필요한 친구가 참고할 수 있기를 바랍니다.
클래스 멤버에 대한 정적 액세스:
1. 전달되지 않은 호출
1) 클래스 이름이 명확함(A::funcA())
2 전달된 호출
1)self:: 2)parent:: 3)static:: 4)forward_static_call() 5)get_called_class()
참고:
"늦음" 바인딩" 이는 static::이 더 이상 현재 메서드가 정의된 클래스로 확인되지 않고 실제 런타임에 계산된다는 의미입니다. 정적 메서드 호출에 사용할 수 있으므로(그러나 이에 국한되지는 않음) "정적 바인딩"이라고도 합니다.
<?php class A { public static function foo() { static::who(); } public static function who() { echo __CLASS__."\n"; } } class B extends A { public static function test() { A::foo(); parent::foo(); self::foo(); } public static function who() { echo __CLASS__."\n"; } } class C extends B { public static function who() { echo __CLASS__."\n"; } } C::test(); ?>실행 결과:
A C C참고:
상속된 속성은 귀하의 것입니다
상속 체인. 현재 클래스에 먼저 액세스하고 예약어 특성에 따라 액세스한 다음 상속 체인에 따라 액세스합니다.
$this 액세스 멤버(컨텍스트 호출)
self:: 액세스 멤버(컨텍스트 구문 분석)
<?php class A{ protected $value = "A value"; public function printValue(){ echo $this->value; } } class B extends A{ protected $value = "B value"; } $app = new B(); $app->printValue();
运行结果:B value
<?php class A{ //只有将属性定义为静态的才能使用self::进行调用 static protected $value = "A static value "; public function printValue(){ echo self::$value; } } class B extends A{ static protected $value = "B static value"; } $app = new B(); $app->printValue();
运行结果:A static value
<?php class A{ static protected $value = "A static value "; } class B extends A{ public function printValue(){ echo self::$value; } } $app = new B(); $app->printValue();
运行结果:A static value
관련 권장 사항:
PHP는 페이지 점프 기능을 어떻게 구현하려고 합니까? (함수 태그 예시)
PHP 드롭다운 메뉴와 다단계 컬럼은 어떻게 구현하나요? (코드 실제 테스트)php와 html을 결합하여 이미지 파일을 서버에 업로드하는 코드를 구현합니다
위 내용은 전달되지 않은 호출 및 PHP에서 전달된 호출의 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!