>  기사  >  백엔드 개발  >  PHP에서 정적 변수 사용법, 로컬 정적 변수와 전역 정적 변수의 차이점에 대한 자세한 설명

PHP에서 정적 변수 사용법, 로컬 정적 변수와 전역 정적 변수의 차이점에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-06-30 11:23:091592검색

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;

정적 지역 변수의 특징:


1.함수를 호출해도 변하지 않고

종료되지만 변수는 계속 존재하지만 사용할 수 없습니다. 이를 정의한 함수를 다시 호출하면 계속 사용할 수 있으며 이전 호출 후 남은 값은 저장됩니다2. 정적 지역 변수는 한 번만 초기화됩니다.
3 정적
속성은 다음과 같이만 초기화할 수 있습니다. 표현식에는 문자 값이나 상수를 사용할 수 없습니다. 지역 정적 변수가 초기 값 없이 정의된 경우에도 시스템은 자동으로 초기 값 0(숫자 변수의 경우) 또는 null 문자(문자 변수의 경우)를 할당합니다. 정적 변수의 초기 값은 0입니다. 4. 함수가 여러 번 호출되고 특정 변수의 값이 호출 간에 유지되어야 하는 경우 정적 지역 변수를 고려할 수 있습니다. 위의 목적을 달성하기 위해 전역 변수를 사용할 수도 있지만, 전역 변수는 예상치 못한 부작용을 일으키는 경우가 있으므로 여전히 로컬 정적 변수를 사용하는 것이 좋습니다.

function test()
{
    static $var = 5;  //static $var = 1+1;就会报错
    $var++;
    echo $var . &#39; &#39;;
}
 
test(); //2
test(); //3
test(); //4
echo $var; //报错:Notice: Undefined variable: var

정적 전역 변수 정보:

//全局变量本身就是静态存储方式,所有的全局变量都是静态变量
function static_global(){
    global $glo;
    $glo++;
    echo $glo.&#39;<br>&#39;;
}
static_global(); //1
static_global(); //2
static_global(); //3
echo $glo . &#39;<br>&#39;; //3



위 내용은 PHP에서 정적 변수 사용법, 로컬 정적 변수와 전역 정적 변수의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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