1. PHP에는 전역 정적 변수가 없습니다.
과거에 .Net 개발을 할 때 다음 방법을 사용하여 일부 데이터를 캐시할 수 있었습니다.
일반 복사본을 클립보드 인쇄로 보시겠습니까?
공개 클래스 테스트 {
private static int Count = 0; //이 변수는 애플리케이션 전체에서 유효합니다.
}
공개 클래스 테스트{
private static int Count = 0; //이 변수는 애플리케이션 전체에서 유효합니다.
}
PHP는 해석형 언어입니다. 비록 static 한정자가 있지만 그 의미는 .Net의 그것과 완전히 다릅니다.
클래스의 변수가 정적으로 선언된 경우에도 이 변수는 현재 페이지 수준 애플리케이션 도메인에서만 유효합니다.
2. 변수 범위를 이해합니다.
메서드 외부에서 선언된 변수는 메서드 본문 내에서 액세스할 수 없습니다.
예:
일반 사본을 클립보드 인쇄로 보시겠습니까?
<?php
$url = " www.webjx.com ";
함수 _DisplayUrl() {
에코 $url;
}
함수 DisplayUrl() {
글로벌 $url;
에코 $url;
}
_DisplayUrl();
디스플레이Url();
?>
<?php
$url = " www.webjx.com ";
함수 _DisplayUrl() {
에코 $url;
}
함수 DisplayUrl(){
글로벌 $url;
에코 $url;
}
_DisplayUrl();
디스플레이Url();
?>
_DisplayUrl 메소드는 메소드 본문 _DisplayUrl에서 $url 변수에 액세스할 수 없기 때문에 결과를 표시하지 않습니다. DisplayUrl 메소드와 같이 $url 앞에 전역을 추가하기만 하면 됩니다.
메소드 본문에 정의된 전역 변수는 메소드 외부에서 액세스할 수 있습니다.
일반 복사를 클립보드 인쇄로 보시겠습니까?
<?php
함수 _DisplayUrl() {
전역 $myName;
$myName='이빈';
}
_DisplayUrl();
echo $myName; //이빈 출력
?>