우리는 이전에 일반적으로 사용되는 몇 가지 매직 메소드에 대해 배웠습니다. PHP는 또한 일부 매직 상수를 일상 작업에서 사용했다고 생각합니다.
실제로 PHP도 많은 상수를 제공하지만 모두 다양한 확장 라이브러리에 의존합니다. 몇몇 상수는 보편적이며 해당 상수가 위치한 코드의 위치에 따라 일부 위치 관련 정보를 제공합니다. * **.
Magic 상수는 대소문자를 구분하지 않으며 __LINE__과 __line__은 동일하지만 엔지니어링 개발을 위해서는 상수를 최대한 대문자로 사용해야 합니다.
__LINE__
파일의 현재 줄 번호입니다.
echo __LINE__ . PHP_EOL; // 3 function testLine() { echo __LINE__ . PHP_EOL; // 7 } class TestLineClass { function testLine() { echo __LINE__ . PHP_EOL; // 14 } } testLine(); $test = new TestLineClass(); $test->testLine();
__FILE__
파일의 전체 경로와 파일 이름입니다. 포함된 파일 내에서 사용되는 경우 포함된 파일의 이름을 반환합니다. PHP 4.0.2부터 __FILE__에는 항상 절대 경로(또는 심볼릭 링크의 경우 해결된 절대 경로)가 포함되어 있지만 그 이전 버전에는 때때로 상대 경로가 포함되어 있었습니다.
echo __FILE__ . PHP_EOL; // D:\phpproject\php\newblog\php-magic-constant.php
__DIR__
파일이 위치한 디렉터리입니다. 포함된 파일 내에서 사용되는 경우 포함된 파일이 있는 디렉터리를 반환합니다. dirname(__FILE__)과 동일합니다. 디렉터리 이름은 루트 디렉터리가 아닌 이상 뒤에 슬래시를 포함하지 않습니다. (PHP 5.3.0의 새로운 기능) =
echo __DIR__ . PHP_EOL; // D:\phpproject\php\newblog
__FUNCTION__
함수 이름(PHP 4.3.0의 새로운 기능). PHP 5부터 이 상수는 정의된 대로 함수 이름을 반환합니다(대소문자 구분). PHP 4에서 이 값은 항상 소문자입니다.
echo __FUNCTION__ . PHP_EOL; // 啥都没输出 function testFunction() { echo __FUNCTION__ . PHP_EOL; // testFunction } class TestFunctionClass { function testFunction1() { echo __FUNCTION__ . PHP_EOL; // testFunction1 } } testFunction(); $test = new TestFunctionClass(); $test->testFunction1();
__CLASS__
클래스 이름(PHP 4.3.0의 새로운 기능). PHP 5부터 이 상수는 정의되었을 때 클래스의 이름을 반환합니다(대소문자 구분). PHP 4에서는 이 값은 항상 소문자입니다. 클래스 이름에는 클래스가 선언된 범위(예: FooBar)가 포함됩니다. PHP 5.4부터 __CLASS__는 특성에도 작동합니다. 특성 메서드 내에서 사용되는 경우 __CLASS__는 특성 메서드를 호출하는 클래스의 이름입니다.
echo __CLASS__ . PHP_EOL; // 什么也没有 function testClass() { echo __CLASS__ . PHP_EOL; // 什么也没有 } trait TestClassTrait { function testClass2() { echo __CLASS__ . PHP_EOL; // TestClassClass } } class TestClassClass { use TestClassTrait; function testClass1() { echo __CLASS__ . PHP_EOL; // TestClassClass } } testClass(); $test = new TestClassClass(); $test->testClass1(); $test->testClass2();
__TRAIT__
특성 이름(PHP 5.4.0의 새로운 기능). PHP 5.4부터 이 상수는 정의된 대로 특성의 이름을 반환합니다(대소문자 구분). 특성 이름에는 해당 특성이 선언된 범위(예: FooBar)가 포함됩니다.
echo __TRAIT__ . PHP_EOL; // 什么也没有 function testTrait() { echo __TRAIT__ . PHP_EOL; // 什么也没有 } trait TestTrait { function testTrait2() { echo __TRAIT__ . PHP_EOL; // TestTrait } } class TestTraitClass { use TestTrait; function testTrait1() { echo __TRAIT__ . PHP_EOL; // 什么也没有 } } testTrait(); $test = new TestTraitClass(); $test->testTrait1(); $test->testTrait2();
__METHOD__
클래스의 메소드 이름 (PHP 5.0.0에서 새로 추가됨). 정의된 대로 메서드의 이름을 반환합니다(대소문자 구분).
echo __METHOD__ . PHP_EOL; // 什么也没有 function testMethod() { echo __METHOD__ . PHP_EOL; // testMethod } class TestMethodClass { function testMethod1() { echo __METHOD__ . PHP_EOL; // TestMethodClass::testMethod1 } } testMethod(); $test = new TestMethodClass(); $test->testMethod1();
__NAMESPACE__
현재 네임스페이스의 이름입니다(대소문자 구분). 이 상수는 컴파일 타임에 정의됩니다(PHP 5.3.0의 새로운 기능).
echo __NAMESPACE__ . PHP_EOL; // test\magic\constant class TestNameSpaceClass { function testNamespace() { echo __NAMESPACE__ . PHP_EOL; // test\magic\constant } } $test = new TestNameSpaceClass(); $test->testNamespace();
전체 코드: https://github.com/zhangyue0503/php/blob/master/newblog/php-magic-constant.php
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP의 매직 상수란 무엇입니까? 마법 상수는 무엇입니까? (요약)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!