PHP 정적 변수에 걸쳐 여러가 있습니다.php 페이지
-
03-07-2019 - |
문제
내가 건축 POP3 사서함 PHP.내가 다음 파:
- server_access.php (fetch 메일은 POP3 서버에서)
- data_access.php (가져오는/쓰기 우편을 로컬 DB)
- mime_parser.php (구문 분석하는 MIME 내용)
- core.php (사용하여 위에 파일을 저장 분석메일로 assoc 라는 배열$함)
지금,나는 페이지 사서함이 있습니다.php 을 표시함과 showmail.php 각 메일입니다.사용자의 자격에 저장됩니다.ini 파일로 사용되는 필요합니다.것,내가 할 require_once('core.php')에서 모두 mailbox.php 고서 showmail.php
나를 표시할 수 있함(ie.$받은 값이 있는)경우에,그러나 나는 선택을 읽 mail(팝업 창의 showmail.php 다),$함 빈 배열입니다.
$함으로 정의하는 정적에서 배열 core.php
해결책
정적 데이터는 정적 컨텍스트 내에서의 클래스를 의미하는 정적 데이터 멤버 클래스에서는 공유하여 모든 해당 클래스의 인스턴스.
당신이 무엇을 것에 대해 이야기가 유지하는 데이터는 여러 HTTP 요청합니다.정적 데이터렇게 하지 않습니다.는 무엇$_SESSION 데이터입니다.
다른 방법을 넣어:면 스크립트가 완료 서비스의 현재 요청,그것은 완전히 죽습니다.모든 데이터를 했다는 것은 완전히 치워버릴 수 있었다.새로운 요청 시작한다.
세션 데이터를 때까지 지속 PHP 결정 그것을 정리하거나 당신 수동으로 그것을 파괴한다.일반적으로 당신이해야 할 모든 세션을 사용하는 데이터에서 스크립트:
Script1:mailbox.php
session_start();
$_SESSION['mailbox'] = array( /* messages */ );
스크립트는 2:showmail.php
session_start();
$mailbox = $_SESSION['mailbox'];
한가지 유의할 사항:는 경우 스크립트는 긴-실행하려고 하와를 넣어 session_commit()에서 가능한 한 빨리기 때문에 세션 액세스 블록 PHP 에서 의미하는 경우 다른 스크립트로 session_start()동일한 사용자에 대해 그 차단까지 스크립트가 완료되면을 실행하거나 해제합니다.
다른 팁
PHP 세션은 요청간에 세션 데이터를 저장할 장소가 필요합니다. 귀하의 경우에는 홈 디렉토리의 Temp Php Session 폴더입니다. 유효한 디렉토리를 가리 키려면 해당 폴더를 만들거나 session.save_path를 변경하십시오.
당신의 경우 core
파일은 mailbox.php에 올바른 데이터를 제공하지만 showmail.php는 showmail.php에서 수행하는 것과 관련이 있습니다.