static은 PHP에 내장된 키워드입니다. static 키워드를 사용하여 정적 메서드와 속성을 정의할 수 있으며 정적 변수 및 후기 정적 바인딩을 정의하는 데에도 사용할 수 있습니다.
이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.4, DELL G3 컴퓨터
php static은 무엇을 의미합니까?
static은 PHP에 내장된 키워드입니다.
정적 키워드
팁
이 페이지에서는 정적 키워드를 사용하여 정적 메서드와 속성을 정의하는 방법을 설명합니다. static은 정적 변수와 후기 정적 바인딩을 정의하는 데에도 사용할 수 있습니다. 정적이 어떻게 사용되는지 보려면 위 페이지를 참조하세요.
클래스 특성이나 메서드를 정적으로 선언하면 클래스를 인스턴스화하지 않고도 직접 액세스할 수 있습니다. 인스턴스화된 클래스 객체 내에서 정적으로 액세스할 수 있습니다.
정적 메서드
정적 메서드는 객체를 통해 호출할 필요가 없으므로 정적 메서드에서는 의사 변수 $this를 사용할 수 없습니다.
경고
비정적 메서드를 정적으로 호출하면 오류가 발생합니다.
PHP 8.0.0 이전에는 비정적 메서드를 정적으로 호출하는 것이 더 이상 사용되지 않으며 E_DEPRECATED 수준 경고가 발생했습니다.
예제 #1 정적 메서드 예
<?php class Foo { public static function aStaticMethod() { // ... } } Foo::aStaticMethod(); $classname = 'Foo'; $classname::aStaticMethod(); ?>
정적 속성
정적 속성은 범위 확인 연산자(:)를 사용하여 액세스되며 개체 연산자( -> )를 통해 액세스할 수 없습니다.
변수를 통해 클래스를 참조하는 것은 가능하지만, 이 변수의 값은 예약어(self, parent, static 등)가 될 수 없습니다.
예제 #2 정적 속성 예
<?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"; // 未定义的 "属性" my_static print $foo::$my_static . "\n"; $classname = 'Foo'; print $classname::$my_static . "\n"; print Bar::$my_static . "\n"; $bar = new Bar(); print $bar->fooStatic() . "\n"; ?>
위 루틴의 출력 PHP 8 유사:
foo foo
주의사항: 23행의 /in/V0Rvv에서 정적 속성 Foo::$my_static에 비정적으로 액세스
경고: 정의되지 않은 속성: 23행의 /in/V0Rvv에 있는 Foo::$my_static
foo foo foo foo
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 php static 그게 무슨 뜻인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!