>백엔드 개발 >PHP 문제 >PHP 정적 메소드는 무엇을 참조합니까?

PHP 정적 메소드는 무엇을 참조합니까?

藏色散人
藏色散人원래의
2020-07-25 11:04:502405검색

php 정적 메서드는 php의 static 키워드를 사용하여 정적 메서드 및 속성을 정의하는 것을 의미합니다. Static은 정적 변수 및 후기 정적 바인딩을 정의하는 데에도 사용할 수 있습니다. 사용 구문은 "public static $my_static = 'foo'; ".

PHP 정적 메소드는 무엇을 참조합니까?

권장: "PHP 튜토리얼"

정적(정적) 키워드

이 페이지에서는 정적 메서드와 속성을 정의하기 위해 정적 키워드를 사용하는 방법을 설명합니다. static은 정적 변수와 후기 정적 바인딩을 정의하는 데에도 사용할 수 있습니다.

클래스 특성이나 메서드를 정적으로 선언하면 클래스를 인스턴스화하지 않고도 직접 액세스할 수 있습니다. 정적 속성은 인스턴스화된 클래스의 개체를 통해 액세스할 수 없습니다(그러나 정적 메서드는 가능함).

PHP 4와 호환되기 위해 액세스 제어가 지정되지 않은 경우 속성과 메서드는 기본적으로 공개로 설정됩니다.

정적 메서드에서는 개체 호출이 필요하지 않으므로 정적 메서드에서는 의사 변수 $this를 사용할 수 없습니다.

객체는 -> 연산자를 통해 정적 속성에 액세스할 수 없습니다.

정적이 아닌 메서드를 정적으로 호출하면 E_STRICT 수준 오류가 발생합니다.

다른 모든 PHP 정적 변수와 마찬가지로 정적 속성은 표현식이 아닌 리터럴이나 상수로만 초기화할 수 있습니다. 따라서 정적 속성은 정수 또는 배열로 초기화될 수 있지만 다른 변수나 함수 반환 값으로 초기화될 수 없으며 개체를 가리킬 수도 없습니다.

PHP 5.3.0부터 변수를 사용하여 클래스를 동적으로 호출할 수 있습니다. 그러나 이 변수의 값은 키워드 self, parent 또는 static일 수 없습니다.

예제 #1 정적 속성 예

<?php
class Foo
{
    public static $my_static = &#39;foo&#39;;
    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 = &#39;Foo&#39;;
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 = &#39;Foo&#39;;
$classname::aStaticMethod(); // 自 PHP 5.3.0 起
?>

위 내용은 PHP 정적 메소드는 무엇을 참조합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.