이 기사의 예에서는 PHP에서 정적 메소드를 사용할 때 몇 가지 일반적인 예방 조치를 소개합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법은 다음과 같습니다.
1. 클래스의 메서드가 정적으로 선언되지 않았지만 변경 가능한 클래스 멤버 변수를 사용하지 않더라도 연산자::를 사용하여 ;
2.(: 연산자를 사용하여) 정적으로 호출되는 메소드의 $this 값은 정의된 클래스가 아니라 호출 컨텍스트에 따라 결정됩니다. !!
예를 들어 다음 코드는 다음과 같습니다.
<?php class TestClass1 { public $normal_v = 'normal_v from TestClass1'; public static $STATIC_V = 'STATIC_V from TestClass1'; public function test_func1() { echo $this->normal_v.'<br />'.self::$STATIC_V; } } class TestClass2 { public $normal_v = 'normal_v from TestClass2'; public static $STATIC_V = 'STATIC_V from TestClass2'; public function test_func2() { TestClass1::test_func1(); } } $t2 = new TestClass2(); $t2->test_func2();
TestClass2의 Normal_v
TestClass1의 STATIC_V
사실 이 두 클래스의 관계는 "양방향 연관"이어야 합니다.
관심 있는 친구들은 이 기사의 예를 테스트하고 실행할 수 있으며, 새로운 이득이 있을 것이라고 믿습니다!