이 글은 주로 PHP에서 정적메소드를 사용할 때의 몇 가지 주의사항
을 소개합니다. PHP 정적 메소드를 호출하는 기술과 오류가 발생하기 쉬운 점을 예제 형식으로 알려줍니다.PHP에서 정적 메서드를 사용할 때 몇 가지 일반적인 주의 사항을 소개합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 메소드는 다음과 같습니다. 1.
클래스의 메소드가static로 선언되지 않았지만 변경 가능한 클래스 멤버 변수를 사용하지 않더라도 연산자를 사용하여 외부에서 호출할 수 있습니다. to call; 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();
이 코드의 출력은 무엇입니까? TestClass1의 Normal_v df250b2156c434f3390392d09b1c9563 TestClass1의 STATIC_V가 실제로 잘못된 것으로 나타났습니다. TestClass1
의 TestClass2STATIC_V
참고: test_func1()은 TestClass1에 정의되어 있지만 TestClass2에서 호출되며 내부 $this 변수는 TestClass2에 의해 결정됩니다!
실제로 이 두 클래스 간의 관계는 " 양방향 연결" ".
관심 있는 친구들은 이 기사의 예를 테스트하고 실행할 수 있으며, 새로운 이득이 있을 것이라고 믿습니다!
위 내용은 PHP에서 정적 메서드 사용에 대한 몇 가지 참고 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!