Static변수는 함수 범위 내에만 존재합니다. 정적 변수는 다음에 이 함수가 호출될 때 변수 값이 유지됩니다.
정적 변수는 함수 범위 내에서만 존재합니다. . 범위 내에서 정적 변수는 스택에만 존재합니다. 일반적으로 함수 내의 변수(예: 지역 변수)는 함수가 끝난 후 해제되지만 정적 변수는 해제되지 않습니다. 다음에 이 함수를 호출하면 변수 값이 유지됩니다.
정적 변수의 기본 사용법
1. 클래스에서 정적 변수를 정의합니다
[접근 한정자] static $변수 이름
2.정적 변수에 접근하는 방법은 두 가지가 있습니다. self::$정적 변수 이름, 클래스 이름::$정적 변수 이름
클래스 외부에서 접근하는 경우: 메서드 클래스 이름::$정적 변수 이름이 있습니다
예
class Child{ public $name; //这里定义并初始化一个静态变量 $nums public static $nums=0; function construct($name){ $this->name=$name; } public function join_game(){ //self::$nums 使用静态变量 self::$nums+=1; echo $this->name."加入堆雪人游戏"; } } //创建三个小孩 $child1=new Child("李逵"); $child1->join_game(); $child2=new Child("张飞"); $child2->join_game(); $child3=new Child("唐僧"); $child3->join_game(); //看看有多少人玩游戏 echo "<br/> 有这".Child::$nums;정적 지역 변수의 특징:
종료되지만 변수는 계속 존재하지만 사용할 수 없습니다. 이를 정의한 함수를 다시 호출하면 계속 사용할 수 있으며 이전 호출 후 남은 값은 저장됩니다2. 정적 지역 변수는 한 번만 초기화됩니다.
3 정적
속성은 다음과 같이만 초기화할 수 있습니다. 표현식에는 문자 값이나 상수를 사용할 수 없습니다. 지역 정적 변수가 초기 값 없이 정의된 경우에도 시스템은 자동으로 초기 값 0(숫자 변수의 경우) 또는 null 문자(문자 변수의 경우)를 할당합니다. 정적 변수의 초기 값은 0입니다. 4. 함수가 여러 번 호출되고 특정 변수의 값이 호출 간에 유지되어야 하는 경우 정적 지역 변수를 고려할 수 있습니다. 위의 목적을 달성하기 위해 전역 변수를 사용할 수도 있지만, 전역 변수는 예상치 못한 부작용을 일으키는 경우가 있으므로 여전히 로컬 정적 변수를 사용하는 것이 좋습니다.
function test() { static $var = 5; //static $var = 1+1;就会报错 $var++; echo $var . ' '; } test(); //2 test(); //3 test(); //4 echo $var; //报错:Notice: Undefined variable: var정적 전역 변수 정보:
//全局变量本身就是静态存储方式,所有的全局变量都是静态变量 function static_global(){ global $glo; $glo++; echo $glo.'<br>'; } static_global(); //1 static_global(); //2 static_global(); //3 echo $glo . '<br>'; //3
위 내용은 PHP에서 정적 변수 사용법, 로컬 정적 변수와 전역 정적 변수의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!