>  기사  >  백엔드 개발  >  PHP 정적 멤버 변수

PHP 정적 멤버 변수

高洛峰
高洛峰원래의
2017-02-18 16:39:271057검색

정적 멤버: 정적 클래스의 멤버는 static 수정자를 추가하여 정적 멤버입니다. 클래스 이름 + 정적 멤버이름을 직접 사용하여 이 정적 멤버에 액세스할 수 있습니다. , 정적 멤버가 메모리에 존재하기 때문에 비정적 멤버는 메모리가 할당되기 전에 인스턴스화되어야 하므로 정적 멤버는 비정적 멤버에 액세스할 수 없습니다. 정적 멤버는 메모리에 존재하므로 비정적 멤버는 클래스의 정적 멤버에 직접 액세스할 수 있습니다. .

1. 정적 전역 변수

정의: 전역 변수 앞에 static 키워드를 추가하면 변수가 정적 전역 변수로 정의됩니다.

특징:
A. 글로벌 데이터 영역에 메모리를 할당하는 변수입니다.
B. 초기화: 명시적으로 초기화하지 않으면 암시적으로 0으로 초기화됩니다(자동 변수는 명시적으로 초기화하지 않는 한 무작위입니다).
 C. 액세스 변수는 소스 파일에서만 볼 수 있으며 엄밀히 말하면 정의 지점에서 시작하여 이 파일에서 끝나야 합니다.

2. 정적 지역 변수

<span style="font-size: 15px">特点:</span> <br><span style="font-size: 15px">  A、该变量在全局数据区分配内存。 </span><br><span style="font-size: 15px">  B、初始化:如果不显式初始化,那么将被隐式初始化为0,以后的函数调用不再进行初始化。 </span><br><span style="font-size: 15px">  C、<strong>它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或 语句块结束时,其作用域随之结束。<br></strong></span>

정적 데이터 멤버는 일반 데이터 멤버와 동일한 공개, 보호 및 비공개 액세스 규칙을 따릅니다.

정적 데이터 멤버는 전역 데이터 영역에 메모리를 할당하고 이 클래스에 속한 모든 개체에서 공유되므로 특정 클래스 개체에 속하지 않습니다. 클래스의 인스턴스가 생성됩니다. ''정적 데이터 멤버 초기화는 일반 데이터 멤버 초기화와 다릅니다. 정적 데이터 멤버 초기화 형식은 다음과 같습니다.

                                                                                       >                               🎜>클래스의 정적 데이터 멤버에는 두 가지 액세스 양식이 있습니다.                                                                                                                             정적 데이터 구성원의 액세스 권한이 허용되는 경우(즉, , 공개 멤버), 위 형식에 따라 프로그램에서 정적 데이터 멤버를 참조할 수 있습니다.

정적 데이터 멤버는 각 객체가 동일한 항목 속성을 가질 때 주로 사용됩니다. 예를 들어 예금 클래스의 경우 각 인스턴스의 이자율은 동일합니다. 따라서 이자는 예금 클래스의 정적 데이터 멤버로 설정되어야 합니다. 이는 두 가지 장점이 있습니다. 예금 클래스 객체를 아무리 정의하더라도 이자 데이터 구성원은 모두 글로벌 데이터 영역에 할당된 메모리를 공유하므로 저장 공간이 절약됩니다. 둘째, 관심을 변경해야 하는 경우 한 번만 변경하면 모든 예금 개체의 관심이 변경됩니다.


더 많은 PHP 정적 멤버 변수 및 관련 기사를 보려면 PHP를 참조하세요. 중국사이트!

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