当前位置: 首页 > 后端技术 > PHP

PHP中的那些魔法常量

时间:2023-03-29 22:10:52 PHP

我们之前了解过一些常用的魔法方法。除了魔法方法,PHP还提供了一些魔法常量。我相信您在日常工作中已经使用过它们。这是给你的总结。其实PHP也提供了很多常量但是它们都依赖于各种扩展库,并且有几个常量是通用的并且跟在它们代码的location后面提供一些位置相关的信息。这些是魔法常量。魔法常量是不区分大小写的,\_\_LINE\_\_和\_\_line\_\_是一样的,但是对于工程开发来说,常量应该尽量大写。\_\_LINE\_\_文件中的当前行号。回声__LINE__。PHP_EOL;//3functiontestLine(){echo__LINE__.PHP_EOL;//7}classTestLineClass{functiontestLine(){echo__LINE__.PHP_EOL;//14}}testLine();$test=newTestLineClass();$test->testLine();\_\_FILE\_\_文件的完整路径和文件名。如果在包含文件中使用,则返回包含文件的名称。自PHP4.0.2起,\_\_FILE\_\_始终包含绝对路径(如果是符号链接,则为已解析的绝对路径),而在此之前的版本有时包含相对路径。回声__FILE__。PHP_EOL;//D:\phpproject\php\newblog\php-magic-constant.php\_\_DIR\_\_文件所在目录。如果在包含文件中使用,则返回包含文件所在的目录。它等同于目录名(\_\_FILE\_\_)。目录名称不包括尾部斜杠,除非它们是根目录。(PHP5.3.0中的新功能)=echo__DIR__。PHP_EOL;//D:\phpproject\php\newblog\_\_FUNCTION\_\_函数名(PHP4.3.0新增)。从PHP5开始,这个常量返回函数定义时的名称(区分大小写)。在PHP4中,值总是小写的。回声__FUNCTION__。PHP_EOL;//没有输出functiontestFunction(){echo__FUNCTION__.PHP_EOL;//testFunction}classTestFunctionClass{functiontestFunction1(){echo__FUNCTION__.PHP_EOL;//testFunction1}}testFunction();$test=newTestFunctionClass();$test->testFunction1();\_\_CLASS\_\_类名(PHP4.3.0新增)。从PHP5开始,这个常量返回定义类的名称(区分大小写)。在PHP4中,值总是小写的。类名包括声明它的范围(例如Foo\Bar)。注意\_\_CLASS\_\_自PHP5.4起也适用于特征。在特征方法中使用时,\_\_CLASS\_\_是调用特征方法的类的名称。回声__CLASS__。PHP_EOL;//NothingfunctiontestClass(){echo__CLASS__.PHP_EOL;//没有}traitTestClassTrait{functiontestClass2(){echo__CLASS__.PHP_EOL;//TestClassClass}}classTestClassClass{使用TestClassTrait;功能testClass1(){回声__CLASS__。PHP_EOL;//TestClassClass}}testClass();$test=newTestClassClass();$test->testClass1();$test->testClass2();\_\_TRAIT\_\_Trait名称(PHP5.4.0新增).从PHP5.4开始,这个常量返回定义的特征的名称(区分大小写)。特征名称包括声明它们的范围(例如Foo\Bar)。回声__TRAIT__。PHP_EOL;//NothingfunctiontestTrait(){echo__TRAIT__.PHP_EOL;//没有}traitTestTrait{functiontestTrait2(){echo__TRAIT__.PHP_EOL;//TestTrait}}classTestTraitClass{使用TestTrait;函数testTrait1(){echo__TRAIT__.PHP_EOL;//Nothing}}testTrait();$test=newTestTraitClass();$test->testTrait1();$test->testTrait2();\_\_METHOD\_\_类的方法名(newinPHP5.0.0)。返回方法定义时的名称(区分大小写)。回声__METHOD__。PHP_EOL;//NothingfunctiontestMethod(){echo__METHOD__.PHP_EOL;//testMethod}classTestMethodClass{functiontestMethod1(){echo__METHOD__.PHP_EOL;//TestMethodClass::testMethod1}}testMethod();$test=newTestMethodClass();$test->testMethod1();\_\_NAMESPACE\_\_当前命名空间的名称(区分大小写)。该常量在编译时定义(PHP5.3.0新增)。回声__NAMESPACE__。PHP_EOL;//test\magic\constantclassTestNameSpaceClass{functiontestNamespace(){echo__NAMESPACE__.PHP_EOL;//test\magic\constant}}$test=newTestNameSpaceClass();$test->testNamespace();完整代码:https://github.com/zhangyue0503/php/blob/master/newblog/php-magic-constant.php关注公众号:【硬核项目经理】获取最新文章加微信/QQ好友:【xiaoyuezigonggong/149844827】免费PHP、项目管理学习资料知乎、公众号、抖音、头条搜索【硬核项目经理】B站ID:482780532