php 정적 메서드는 php의 static 키워드를 사용하여 정적 메서드 및 속성을 정의하는 것을 의미합니다. Static은 정적 변수 및 후기 정적 바인딩을 정의하는 데에도 사용할 수 있습니다. 사용 구문은 "public static $my_static = 'foo'; ".
권장: "PHP 튜토리얼"
정적(정적) 키워드
이 페이지에서는 정적 메서드와 속성을 정의하기 위해 정적 키워드를 사용하는 방법을 설명합니다. static은 정적 변수와 후기 정적 바인딩을 정의하는 데에도 사용할 수 있습니다.
클래스 특성이나 메서드를 정적으로 선언하면 클래스를 인스턴스화하지 않고도 직접 액세스할 수 있습니다. 정적 속성은 인스턴스화된 클래스의 개체를 통해 액세스할 수 없습니다(그러나 정적 메서드는 가능함).
PHP 4와 호환되기 위해 액세스 제어가 지정되지 않은 경우 속성과 메서드는 기본적으로 공개로 설정됩니다.
정적 메서드에서는 개체 호출이 필요하지 않으므로 정적 메서드에서는 의사 변수 $this를 사용할 수 없습니다.
객체는 -> 연산자를 통해 정적 속성에 액세스할 수 없습니다.
정적이 아닌 메서드를 정적으로 호출하면 E_STRICT 수준 오류가 발생합니다.
다른 모든 PHP 정적 변수와 마찬가지로 정적 속성은 표현식이 아닌 리터럴이나 상수로만 초기화할 수 있습니다. 따라서 정적 속성은 정수 또는 배열로 초기화될 수 있지만 다른 변수나 함수 반환 값으로 초기화될 수 없으며 개체를 가리킬 수도 없습니다.
PHP 5.3.0부터 변수를 사용하여 클래스를 동적으로 호출할 수 있습니다. 그러나 이 변수의 값은 키워드 self, parent 또는 static일 수 없습니다.
예제 #1 정적 속성 예
<?php class Foo { public static $my_static = 'foo'; public function staticValue() { return self::$my_static; } } class Bar extends Foo { public function fooStatic() { return parent::$my_static; } } print Foo::$my_static . "\n"; $foo = new Foo(); print $foo->staticValue() . "\n"; print $foo->my_static . "\n"; // Undefined "Property" my_static print $foo::$my_static . "\n"; $classname = 'Foo'; print $classname::$my_static . "\n"; // As of PHP 5.3.0 print Bar::$my_static . "\n"; $bar = new Bar(); print $bar->fooStatic() . "\n"; ?> </programlisting> </example> <example> <title>静态方法示例</title> <programlisting role="php"> <![CDATA[ <?php class Foo { public static function aStaticMethod() { // ... } } Foo::aStaticMethod(); $classname = 'Foo'; $classname::aStaticMethod(); // 自 PHP 5.3.0 起 ?>
위 내용은 PHP 정적 메소드는 무엇을 참조합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!