PHP 변수 매직
그것을 실행하는 모든 PHP 스크립트는 미리 정의 된 상수를 제공합니다.
그러나, 많은 상수는 다양한 확장에 의해 정의되며, 이러한 확장이 나타납니다 경우에만로드, 또는 동적으로로드, 또는으로 컴파일 시간에 포함되었습니다.
그들은이 변경되는 코드의 위치를 변경으로 팔 매직 상수와 그 값이 있습니다.
예를 들어 __LINE__ 값은에 결정하는 스크립트의 라인에 따라 달라집니다. 다음과 같이 이러한 특수 상수는 대소 문자를 구분하지 않는다 :
__LINE__
현재 행 번호 파일.
예 :
<?php echo '这是第 “ ' . __LINE__ . ' ” 行'; ?>
위 예제의 출력은 다음과 같습니다
这是第 “ 2 ” 行
__FILE__
전체 경로 및 파일의 파일 이름. 포함 된 파일에 사용되는 경우에, 포함되는 파일 이름을 반환한다.
이후 PHP 4.0.2 이후, __ FILE__ 항상 (이 심볼릭 링크 인 경우, 구문 분석 절대 경로입니다)이 이전 버전에서 때로는 상대 경로를 포함하는 절대 경로를 포함합니다.
예 :
<?php echo '该文件位于 “ ' . __FILE__ . ' ” '; ?>
위 예제의 출력은 다음과 같습니다
该文件位于 “ E:\wamp\www\test\index.php ”
__DIR__
카탈로그 파일이 있습니다. 파일에 포함 된 경우 파일이 반환에 디렉토리가 포함되어 있습니다.
그것은있는 dirname (__ FILE__)에 해당합니다. 이 루트 디렉토리, 또는하지 않는 디렉터리 이름 끝에 슬래시를 포함하지 않는다. (PHP 5.3.0 추가)
예 :
<?php echo '该文件位于 “ ' . __DIR__ . ' ” '; ?>
위 예제의 출력은 다음과 같습니다
该文件位于 “ E:\wamp\www\test ”
__FUNCTION__
함수 이름 (추가 PHP 4.3.0). 이 오가지 경우 (대소 문자 구분)를 선언으로 PHP 때문에이 상수는 함수 이름을 반환합니다. PHP 4에서는 그 값은 항상 소문자된다.
예 :
<?php function test() { echo '函数名为:' . __FUNCTION__ ; } test(); ?>
위 예제의 출력은 다음과 같습니다
函数名为:test
__CLASS__
클래스의 이름 (PHP 4.3.0 추가). PHP 때문에이 불변 클래스 이름은 오 (대소 문자 구분)까지의 시간으로 정의된다.
PHP 4에서는 그 값은 항상 소문자된다. (예 : 푸 \ 바 등) 선언 된 영역의 역할을 포함한 클래스 이름입니다. 이후 특성의 __CLASS__도 역할을 PHP 5.4에서 있습니다. 형질 방법에서 사용되는 경우, __ CLASS__ 형질 방법은 클래스의 이름을 호출하는 것이다.
예 :
<?php <?php class test { function _print() { echo '类名为:' . __CLASS__ . "<br>"; echo '函数名为:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
위 예제의 출력은 다음과 같습니다
类名为:test 函数名为:_print
__TRAIT__
특성 이름 (추가 PHP의 5.4.0). PHP 5.4.0부터 PHP 코드를 재사용라는 특성의 방법을 구현한다.
(예 : 푸 \ 바 등) 선언 된 영역의 역할을 포함하여 특성 이름입니다.
기본 클래스에서 적용되어 회원 MyHelloWorld 방법에 SayWorld 형질을 삽입 상속합니다. 클래스에 정의 된 MyHelloWorld 행동 일관된 접근. 우선 순위 클래스의 현재 방법은 기본 클래스 방법을 덮는 특징에있어서, 방법 및 특성을 무시한다.
<?php class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello(); ?>
위의 예제가 출력 :
Hello World!
__METHOD__
클래스의 방법 (PHP 5.0.0 추가). 이 방법은 (대소 문자 구분) 선언으로 이름을 반환합니다.
예 :
<?php function test() { echo '函数名为:' . __METHOD__ ; } test(); ?>
위 예제의 출력은 다음과 같습니다
函数名为:test
__NAMESPACE__
현재 이름 공간 (대소 문자 구분)의 이름입니다. 이 상수는 컴파일시에 정의 (PHP 5.3.0 추가).
예 :
<?php namespace MyProject; echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject" ?>
위 예제의 출력은 다음과 같습니다
命名空间为:"MyProject"