>  기사  >  백엔드 개발  >  PHP 정적 변수 초기화 코드 예

PHP 정적 변수 초기화 코드 예

怪我咯
怪我咯원래의
2017-07-16 11:25:511852검색

staticstatic변수란 무엇인가요?

정적 변수 유형 지정자는 정적입니다.

정적 변수는 정적 저장소에 속하며 해당 저장 공간은 메모리의 정적 데이터 영역입니다(저장 단위는 정적 저장 영역에 할당됨). 이 영역의 데이터는 프로그램 실행 중 전체에서 이러한 저장 공간을 차지합니다. 전체 프로그램)은 실행 중에 해제되지 않습니다), 전체 프로그램이 끝날 때까지 메모리 주소가 변경되지 않은 것으로 간주할 수도 있습니다. (반대로 자동 자동 변수, 즉 동적 로컬 변수는 동적 저장소에 속합니다. 카테고리를 선택하고 동적 저장 공간을 차지하세요. function 호출이 즉시 종료됩니다. 정적 변수는 프로그램 실행 전반에 걸쳐 항상 존재하지만 해당 범위 밖에서는 사용할 수 없습니다.

또한 정적 저장 방식에 속하는 변수가 반드시 정적 변수인 것은 아닙니다. 예를 들어, 외부 변수(PHP에서는 전역 변수라고 함)는 정적 저장 방법이지만 정적 외부 변수 또는 정적 전역 변수가 되기 전에 반드시 정적 변수로 정의되어야 하는 것은 아닙니다.

모든 전역 변수는 정적 변수이고, 지역 변수는 static 유형 수정자로 정의된 경우에만 지역 정적 변수입니다.

정적 변수는 어디에서나 적용할 수 있습니다. 일단 응용 프로그램이 성공하면 더 이상 동일한 응용 프로그램을 사용할 수 없습니다.

정적 변수는 값을 변경할 수 없다는 의미는 아닙니다. 값을 변경할 수 없는 수량을 상수라고 합니다. 보유하는 값은 변경 가능하며 최신 상태로 유지됩니다. 함수가 호출되고 종료될 때 변경되지 않기 때문에 정적이라고 합니다. 즉, 함수가 마지막으로 호출될 때 정적 변수에 특정 값을 할당하면 다음에 함수가 호출될 때 값이 변경되지 않은 상태로 유지됩니다.

php

variables 멤버는 선언과 동시에 초기화될 수 있지만 스칼라로만 초기화될 수 있습니다. 예:


class A { 
public $f1 = 'xxxx'; 
static public $f2 = 100; 
}
변수를

object

에 할당하려는 경우 생성자에서만 초기화할 수 있습니다. 예:

class A { 
private $child; 
public function construct() { 
$this->child = new B(); 
} 
}

하지만 PHP에는

static

구성이 없습니다. Java의 static과 유사합니다. 장치/정적 블록에 무언가가 있으면 초기화할 적절한 시간이 없습니다.

공유 멤버의 문제를 해결하는 방법이 있습니다. 예를 들면 다음과 같습니다.

class A { 
static public $child; 
} 
A::$child = new B();

비공개 멤버에 대한 깔끔한 방법은 없는 것 같습니다. 다음만 수행할 수 있습니다.

class A { 
static private $child; 
static public initialize() { 
self::$child = new B(); 
} 
} 
A::initialize();

위 내용은 PHP 정적 변수 초기화 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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