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 function Test() { $w3sky = 0; echo $w3sky; $w3sky++; } ?>
다음과 같습니다.
<?php function Test() { static $w3sky = 0; echo $w3sky; $w3sky++; } ?>
정적 변수 및 재귀 함수의 예: <?PHP
function Test()
{
static $count = 0;
$count++;
echo $count;
if ($count < 10) {
Test();
}
$count--;
}
?>
expression
<?PHP function foo(){ static $int = 0;// correct static $int = 1+2; // wrong (as it is an expression) static $int = sqrt(121); // wrong (as it is an expression too) $int++; echo $int; } ?>
위 내용은 PHP 정적 변수에 대한 질문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!