> 백엔드 개발 > PHP 튜토리얼 > PHP에서 정적 키워드 사용에 대한 자세한 설명

PHP에서 정적 키워드 사용에 대한 자세한 설명

韦小宝
풀어 주다: 2023-03-20 20:02:01
원래의
1630명이 탐색했습니다.

PHP의 클래스에서는 static 키워드가 포함된 메서드와 propertiesstatic메서드라고 하며 이러한 메서드와 속성은 해당 클래스 없이 클래스를 통해 직접 액세스할 수 있습니다. PHP에서 static 키워드가 어떻게 사용되는지 설명하는 글입니다. static 키워드를 이해하지 못한 학생들도 함께 살펴보세요!

일반 클래스 및 메소드 사용 외에도 액세스 제어에는 정적 키워드 static도 있습니다. 정적 변수는 프로그램 세그먼트가 실행될 때 로컬 변수일 수도 있고 전역 변수일 수도 있습니다. 메모리에 여전히 존재하며, 다음에 정의할 때 이전 값을 유지하기 위해 자주 사용됩니다. 함수에 대해서는 자세히 설명하지 않겠습니다. 다음의 간단한 코드로 설명하겠습니다.

class Human{
     public $name;
     protected $height;
 
     public static $sValue="Static Value in Human";
     public function eat($food){
         echo $this->name . "'s eating ". $food. "\n";
     }
}
 class Me extends Human
 {
     public $team="lsl";
     private $age="23";
 
     public static $president="zzy";
 
     public static function changePresident($newPrsdt){
         static::$president = $newPrsdt;
         echo parent::$sValue . "<br />";
     }
     //静态变量和方法操作
     private static $a="abc";
     public static function abc(){
         echo "<br />".self::$a;
         self::$a.="def";
    }
}
echo Me::$president. "\n";
Me::changePresident("web");
echo Me::$president. "<br />"; 
Me::abc();
Me::abc();
로그인 후 복사


먼저 Human Human을 정의한 다음 Human을 상속하는 Me 클래스를 정의하고 그 다음 Human의 멤버를 정의합니다. Me 객체를 통해 사용할 수 있으며, 멤버 변수의 값은 전체 사용 과정에서 유효합니다. 코드에 따르면 정적 변수의 값이 변경된 후 다음 호출이 변경된 후임을 알 수 있습니다. 일반 변수인 경우에는 객체를 통해서만 변경할 수 있지만 클래스 내부의 메서드를 통해서는 변경할 수 없습니다. 메소드 abc를 두 번 사용하면 정적 변수 $a의 값이 변경되었습니다. 정적 변수의 용도도 다양합니다.

1. 일반 정적 속성은 클래스의 공개 데이터를 저장하는 데 사용됩니다

2. 이 메서드를 포함하여 정적 메서드 내에서는 정적 속성만 액세스할 수 있습니다. 클래스 및 상위 클래스

3. 객체를 인스턴스화하지 않고도 정적 멤버에 액세스할 수 있습니다.

4. 이 클래스 내의 정적 속성에 액세스하려면 self 또는 static 키워드를 사용하고 뒤에 오는 변수에는 $ 가 포함되어야 합니다(예: self::$a 또는 static::$a

5). parent::$name

6. 클래스 외부의 정적 변수나 메소드에 액세스하는 경우 인스턴스화 없이 클래스 이름을 사용하여 직접 액세스합니다. 예: Me::$pan 및 Me::abc()

특정 점이 너무 많습니다

정적을 이해하지 못합니다:

정적 변수와 정적 변수의 차이점 분석 일반 변수

위 내용은 PHP에서 정적 키워드 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿