PHP에서는 정적 키워드로 수정된 멤버 속성과 멤버 메서드를 정적 속성과 정적 메서드라고 합니다.
정적 속성과 정적 메서드는 클래스에서 인스턴스화하지 않고 직접 사용할 수 있습니다.
정적 속성은 static 키워드로 수정된 멤버 속성이며 클래스의 인스턴스에는 속하지 않습니다. 이는 클래스에 저장된 전역 변수와 동일하며 클래스를 통해 어디에서나 액세스할 수 있습니다.
클래스가 인스턴스화된 개체를 통해 정적 속성에 액세스할 수 없습니다.
정적 속성 액세스의 구문 형식은 다음과 같습니다.
类名称::$静态属性名称
기호 "::"는 범위 구문 분석 연산자라고 하며 정적 속성, 정적 메서드 및 상수에 액세스하는 데 사용되며 다음 작업에도 사용할 수 있습니다. 클래스 및 메서드의 멤버를 재정의합니다.
클래스 내부의 멤버 메소드에서 정적 속성에 액세스하려면 정적 속성 이름 앞에 "self::" 연산자를 추가하세요. 클래스 이름::만 사용하면 클래스 외부에서 클래스 내부의 정적 속성을 호출할 수 있습니다.
참고:
객체는 -> 연산자를 통해 정적 속성에 액세스할 수 없습니다.
다른 모든 PHP 정적 변수와 마찬가지로 정적 속성은 표현식이 아닌 리터럴이나 상수로만 초기화할 수 있습니다. 따라서 정적 속성은 정수 또는 배열로 초기화될 수 있지만 다른 변수나 함수 반환 값으로 초기화될 수 없으며 개체를 가리킬 수도 없습니다.
정적 메서드는 static 키워드로 수정된 멤버 메서드입니다. 어떤 객체에도 제한을 받지 않기 때문에 클래스를 인스턴스화하지 않고도 클래스의 정적 메서드를 직접 참조할 수 있습니다. 정적 메서드는 인스턴스화된 클래스의 개체를 통해 액세스할 수 있습니다.
정적 메서드 참조의 구문 형식은 다음과 같습니다.
类名称::静态方法名称([参数1,参数2,...])
마찬가지로 정적 메서드 이름 앞에 "self::" 연산자를 추가하면 클래스 내부 멤버 메서드에서 정적 메서드를 참조할 수 있습니다. 클래스 이름::만 사용하면 클래스 외부에서 클래스 내부의 정적 메서드를 호출할 수 있습니다.
참고:
정적 메서드에서는 정적 변수만 호출할 수 있으며 일반 변수는 정적 변수를 호출할 수 없습니다.
정적이 아닌 메서드를 정적으로 호출하면 E_STRICT 수준 오류가 발생합니다.
정적 메서드는 객체를 통해 호출할 필요가 없으므로 정적 메서드에서는 의사 변수 $this를 사용할 수 없습니다.
TipsPHP 4와 호환되기 위해 정적 속성과 정적 메서드는 보호 또는 비공개로 지정되지 않은 경우 기본적으로 공개로 설정됩니다.
PHP 5.3.0부터 변수를 사용하여 클래스를 동적으로 호출할 수 있지만 변수 값은 self, parent 또는 static 키워드가 될 수 없습니다.
설명<?php class website{ static $num="0"; // 定义静态变量 public function visit(){ // 定义visit方法 echo "您是第".self::$num."位访客!"; // 输出静态变量信息 self::$num++; // 静态变量做自增运算 } } echo '第一次实例化调用:<br />'; $website=new website(); // 实例化对象 $website->visit(); // 调用对象$website的visit()方法 $website->visit(); $website->visit(); echo '<br />第二次实例化调用:<br />'; $website2=new website(); // 改变对象句柄实例化对象 $website2->visit(); $website2->visit(); $website2->visit(); ?>
위 내용은 PHP는 static 키워드를 사용하여 정적 속성과 정적 메서드를 선언합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!