1. 변수 앞에 static을 추가하여 static 변수(정적 변수)를 만듭니다.
2. 정적 변수와 일반 변수의 차이점은 비정적 전역 변수 의 범위가 전체 소스 프로그램이라는 것입니다. 소스 프로그램이 여러 소스 파일로 구성된 경우 비정적 전역 변수는 각 소스 파일에서 유효합니다. . 의. 정적 전역 변수는 범위를 제한합니다. 즉, 변수가 정의된 소스 파일 내에서만 유효하며 동일한 소스 프로그램의 다른 소스 파일에서는 사용할 수 없습니다. 정적 전역 변수의 범위는 하나의 소스 파일로 제한되고 해당 소스 파일의 함수에서만 공유할 수 있으므로 다른 소스 파일에서 오류를 피할 수 있습니다. 3. 정적 변수와 일반 변수의 차이점:
정적 전역 변수와 일반 전역 변수의 차이점: 정적 전역 변수는
다른 파일 단위에서 참조되지 않도록 한 번만 초기화됩니다. 정적 로컬 변수의 차이점 변수와 일반 지역 변수: 정적 지역 변수는 한 번만 초기화되고 다음 번에는 이전 결과 값을 기반으로 합니다.
정적 함수와 일반 함수의 차이점: 정적 함수는 메모리에 복사본이 하나만 있고 일반 함수는 각 통화마다 복사하세요.
4. 전역 변수 앞에 static 키워드를 추가하면 전역 변수가 전역 정적 변수로 정의됩니다.
1) 메모리 내 위치: 정적 저장 영역(정적 저장 영역은 전체 프로그램 실행 중에 존재함)
2) 초기화: 초기화되지 않은 전역 정적 변수는 프로그램에 의해 자동으로 0으로 초기화됩니다.
3) 범위: 전역 정적 변수는 선언된 파일 외부에서 볼 수 없습니다. 정확히 정의 지점부터 파일 끝까지.
5. 정적 변수의 장점:
다른 파일에서 액세스할 수 없습니다. 충돌 없이 다른 파일에서 동일한 이름을 가진 변수를 수정할 수 있습니다.
메모리 내 위치: 정적 저장 영역
초기화: 초기화되지 않은 전역 정적 변수는 프로그램에 의해 자동으로 0으로 초기화됩니다. (자동 객체의 값은 명시적으로 초기화되지 않는 한 임의적입니다.)
범위: 범위는 여전히 로컬입니다. 이를 정의하는 함수 또는 명령문 블록이 끝납니다.
참고: 지역 변수를 수정하기 위해 static을 사용하면 지역 변수의 저장 위치가 원본 스택에서 정적 저장 영역으로 변경됩니다. 그러나 지역 정적 변수는 범위를 벗어난 후에도 소멸되지 않고 프로그램이 끝날 때까지 메모리에 계속 남아 있지만 더 이상 액세스할 수 없습니다.
전역 변수를 수정하기 위해 static을 사용하면 전역 변수의 범위가 변경되지만(선언된 파일 외부에는 표시되지 않음) 저장 위치는 변경되지 않으며 여전히 정적 저장 영역에 있습니다. .
Static은 정적 객체나 정적 변수를 정의하는 것입니다. 이 글의 관련 예제를 읽으면 static으로 정의된 변수나 클래스 메서드의 특성을 알 수 있습니다.
객체
$object = new Class()를 생성한 다음 변수/메서드에 액세스할 수 있는 경우 "->"를 사용하여 $object->attribute/function을 호출합니다. 2. 정적이든 비정적이든 상관없이 클래스 메서드/변수: class::attribute/function을 직접 호출합니다. 하지만 전제 조건이 있습니다: A. 변수인 경우 해당 변수에 액세스할 수 있어야 합니다.
B. 메소드인 경우 액세스 가능한 메소드 외에도 다음을 충족해야 합니다.
b1) 정적 메소드인 경우 특별한 조건이 없습니다.
b2) 비정적 메소드인 경우; , 메소드에서 $this 를 사용하지 않도록 변경해야 합니다. 즉, 비정적 변수/메서드 호출이 없으며, 물론 정적 변수/메서드 호출에는 문제가 없습니다.
그럼 $object->... 사용과 class::... 사용의 차이점을 살펴보겠습니다.
1. $object->... 사용 시
constructor
를 실행하여 객체를 생성해야 합니다. 2. class::...를 사용하여 정적 메서드/변수를 호출하면 객체를 생성하기 위해 생성자를 실행할 필요가 없습니다. 3. 비정적 메서드/변수를 호출하려면 class::...를 사용하세요. 객체를 생성하기 위해 생성자를 실행할 필요가 없습니다. 그렇다면 이상한 점이 나옵니다. 2와 3이 동일하므로 정적 메소드/변수가 존재하는 이유는 무엇입니까?
Static static
클래스 멤버나 메서드를 static으로 선언하면 클래스를 인스턴스화하지 않고 직접 액세스할 수 있습니다(정적 메서드 제외). 정적 멤버는 클래스에 속하며 어떤 객체 인스턴스에도 속하지 않지만 클래스의 객체 인스턴스는 공유될 수 있습니다.
위 내용은 PHP: 정적 정적 변수와 일반 변수의 차이점 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

phpsessionscanstorestrings, 숫자, 배열 및 객체 1.Strings : TextDatalikeUsernames.2.numbers : integorfloatsforcounters.3.arrays : listslikeshoppingcarts.4.objects : complexStructuresThatareserialized.

세션 재생은 세션 고정 공격의 경우 사용자가 민감한 작업을 수행 할 때 새 세션 ID를 생성하고 이전 ID를 무효화하는 것을 말합니다. 구현 단계에는 다음이 포함됩니다. 1. 민감한 작업 감지, 2. 새 세션 ID 생성, 3. 오래된 세션 ID 파괴, 4. 사용자 측 세션 정보 업데이트.

PHP 세션은 응용 프로그램 성능에 큰 영향을 미칩니다. 최적화 방법은 다음과 같습니다. 1. 데이터베이스를 사용하여 세션 데이터를 저장하여 응답 속도를 향상시킵니다. 2. 세션 데이터 사용을 줄이고 필요한 정보 만 저장하십시오. 3. 비 차단 세션 프로세서를 사용하여 동시성 기능을 향상시킵니다. 4. 사용자 경험과 서버 부담의 균형을 맞추기 위해 세션 만료 시간을 조정하십시오. 5. 영구 세션을 사용하여 데이터 읽기 및 쓰기 시간의 수를 줄입니다.

phpsessionsareser-side, whilecookiesareclient-side.1) sessions stessoredataontheserver, andhandlargerdata.2) cookiesstoredataonthecure, andlimitedinsize.usesessionsforsensitivestataondcookiesfornon-sensistive, client-sensation.

phpidifiesauser의 sssessionusessessioncookiesandssessionids.1) whensession_start () iscalled, phpgeneratesauniquessessionStoredInacookienamedPhpsSessIdonSeuser 'sbrowser.2) thisidallowsphptoretrievessessionDataTromServer.

PHP 세션의 보안은 다음 측정을 통해 달성 할 수 있습니다. 1. Session_REGENEREAT_ID ()를 사용하여 사용자가 로그인하거나 중요한 작업 일 때 세션 ID를 재생합니다. 2. HTTPS 프로토콜을 통해 전송 세션 ID를 암호화합니다. 3. 세션 _save_path ()를 사용하여 세션 데이터를 저장하고 권한을 올바르게 설정할 보안 디렉토리를 지정하십시오.

phpsessionfilesarestoredInTheRectorySpecifiedBysession.save_path, 일반적으로/tmponunix-likesystemsorc : \ windows \ temponwindows.tocustomizethis : 1) austession_save_path () toSetacustomDirectory, verlyTeCustory-swritation;


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

드림위버 CS6
시각적 웹 개발 도구

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
