PHP는 설계 과정에서 슈퍼 전역 변수 9개, 매직 변수 8개, 매직 메서드 13개를 미리 정의했습니다. 이러한 변수와 함수는 선언 없이 스크립트 내 어디에서나 사용할 수 있습니다. 이러한 변수와 함수는 PHP 개발에 자주 사용됩니다. 이러한 변수와 함수는 많은 문제를 쉽게 해결하는 데 도움이 됩니다. 다음은 PHP의 슈퍼글로벌 변수, 매직 변수, 매직 메소드에 대해 자세히 설명합니다.
PHP 수퍼 전역 변수(9)
$GLOBALS 전역 범위에 변수 저장
$_SERVER 서버 관련 정보 가져오기
$_REQUEST 매개변수 가져오기 POST 및 GET 요청
$_POST
형식의 POST 요청 매개변수 가져오기 $_GET
형식의 GET 요청 매개변수 가져오기 $_FILES 업로드된 변수 가져오기 file
$_ENV 서버측 환경 변수 배열 가져오기
$_COOKIE 브라우저 쿠키 작업
쿠키 설정: setcookie(이름, 값, 만료, 경로, 도메인) ;
쿠키 가져오기: $_COOKIE["user"];
쿠키 삭제: setcookie("user", "", time()-3600);//만료 시간 설정
$_SESSION 서버측 세션 작업
세션을 사용하기 전에 session_start()를 session_start()로 시작해야 합니다.
세션 저장: $_SESSION["name"]="King "; // 배열 작동
到 부 in : unset ($ _ session ["name]]; //>
PHP 매직 변수(8)
__LINE__ 파일의 현재 줄 번호입니다.
__FILE__ 파일의 전체 경로 및 파일 이름입니다. 포함된 파일 내에서 사용되는 경우 포함된 파일의 이름을 반환합니다.
__DIR__ 파일이 위치한 디렉터리입니다. 포함된 파일 내에서 사용되는 경우 포함된 파일이 있는 디렉터리를 반환합니다.
__FUNCTION__ 상수는 정의 시 함수 이름을 반환합니다.
__CLASS__ 상수는 정의 시 클래스 이름을 반환합니다(대소문자 구분).
__TRAIT__ 특성의 이름(PHP 5.4.0의 새로운 기능). PHP 5.4.0부터 PHP는 특성이라는 코드 재사용 방법을 구현합니다.
__METHOD__ 클래스의 메소드 이름(PHP 5.0.0에서 새로 추가됨). 정의된 대로 메서드의 이름을 반환합니다(대소문자 구분).
__NAMESPACE__ 현재 네임스페이스의 이름입니다(대소문자 구분). 이 상수는 컴파일 타임에 정의됩니다(PHP 5.3.0의 새로운 기능).
PHP 매직 메소드(13)
__construct() 객체 인스턴스화 시 호출되며, __construct와 클래스 이름 및 함수 이름을 갖는 함수가 동시에 존재할 때 호출됩니다. , __construct가 호출되고 다른 하나는 호출되지 않습니다.
__destruct() 객체가 삭제되거나 객체 작업이 종료될 때 호출됩니다.
__call() 객체가 메서드를 호출합니다. 메서드가 있으면 직접 호출되고, 없으면 __call 함수가 호출됩니다.
__get() 객체의 속성을 읽을 때 속성이 존재하면 속성 값이 직접 반환되고, 존재하지 않으면 __get 함수가 호출됩니다.
__set() 객체의 속성을 설정할 때 속성이 있으면 값을 직접 할당하고, 없으면 __set 함수가 호출됩니다.
__toString()객체를 인쇄할 때 호출됩니다. echo $obj; 또는 print $obj;
__clone() 객체를 복제할 때 호출됩니다. 예: $t=new Test();$t1=clone $t;
__sleep() serialize가 이전에 호출되었습니다. 객체가 상대적으로 크고 직렬화하기 전에 몇 가지 항목을 삭제하려는 경우 이 기능을 고려할 수 있습니다.
__wakeup() 일부 객체 초기화 작업을 수행하기 위해 직렬화를 해제할 때 호출됩니다.
__isset() 객체의 속성이 존재하는지 확인할 때 호출됩니다. 예: isset($c->name).
__unset()객체의 속성을 설정 해제할 때 호출됩니다. 예: unset($c->name).
__set_state() var_export가 호출될 때 호출됩니다. __set_state의 반환 값을 var_export의 반환 값으로 사용합니다.
__autoload() 객체를 인스턴스화할 때 해당 클래스가 존재하지 않으면 이 메소드가 호출됩니다.