>백엔드 개발 >PHP 문제 >php static 그게 무슨 뜻인가요?

php static 그게 무슨 뜻인가요?

藏色散人
藏色散人원래의
2021-12-01 10:40:092057검색

static은 PHP에 내장된 키워드입니다. 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 = &#39;Foo&#39;;
$classname::aStaticMethod();
?>

정적 속성

정적 속성은 범위 확인 연산자(:)를 사용하여 액세스되며 개체 연산자( -> )를 통해 액세스할 수 없습니다.

변수를 통해 클래스를 참조하는 것은 가능하지만, 이 변수의 값은 예약어(self, parent, static 등)가 될 수 없습니다.

예제 #2 정적 속성 예

<?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";      // 未定义的 "属性" my_static
print $foo::$my_static . "\n";
$classname = &#39;Foo&#39;;
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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