PHP 정적 변수 사용 예
수업 테스트
{
공개 정적 함수 a(){}
공개 함수 b(){}
}
$obj = 새로운 테스트;
호출 코드
테스트::a()
$obj->a()
$obj->b();
예 정적 변수가 필요한 예를 보여줍니다
클래스 myobject {
함수 mymethod() {
$instance1 = 새로운 myobject();
$instance2 = 새로운 myobject();
?>
클래스 myobject {
echo myobject::$myvar;
// 결과: 10
기능 테스트()
예시를 보세요
공개 정적 $mystaticvar = 0;
// ::범위 연산자
// $this 범위 대신 자체 범위를 사용합니다
// $this는 클래스의 현재 인스턴스만을 나타내고, self::는 클래스 자체를 표현하기 때문입니다
self::$mystaticvar += 2;
echo self::$mystaticvar ."
";
}
}
$instance1->mymethod() // 디스플레이 2
$instance2->mymethod() // 표시 4
공개 정적 $myvar = 10;
}
?>
이 함수는 $w3sky의 값을 0으로 설정하고 호출될 때마다 "0"을 인쇄하므로 별로 유용하지 않습니다. 변수 $w3sky++를 1씩 늘려도 효과가 없습니다. 왜냐하면 이 함수가 종료되면 변수 $w3sky가 존재하지 않기 때문입니다. 이 카운트 값을 잃지 않는 카운팅 함수(www.111cn.net)를 작성하려면 $w3sky 변수를 static으로 정의하십시오.
예 정적 변수 사용 예
{
정적 $w3sky = 0;
에코 $w3sky;
$w3sky++;
}
?>
이제 test() 함수를 호출할 때마다 $w3sky 값이 출력되고 이 값이 1씩 증가합니다.
클래스 푸
{
공개 정적 $my_static = 'foo'
공개 함수 정적값() {
return self::$my_static
}
}
클래스 바는 foo를 확장합니다
{
공개 함수 foostatic() {
부모 반환::$my_static
}
}
인쇄 foo::$my_static .
$foo = 새로운 foo()
$foo->staticvalue() 인쇄
print $foo->my_static . "n" // 정의되지 않은 "속성" my_static
$foo::$my_static 인쇄
$클래스이름 = 'foo'
print $classname::$my_static . "n"; // php 5.3.0 이후에 동적으로 호출 가능
인쇄 막대::$my_static . "n"
$bar = 새로운 바()
$bar->foostatic() "n"을 인쇄합니다.
?>