1. 什么魔术常量


预定义常量:预定义常量就是PHP内置的常量,预先定义好的

PHP有很多预定义常量,比如:PHP_VERSION(版本号)、PHP_OS(操作系统)。

这些普通的预定义常量在程序中的值是固定的,不会因为在不同的位置而改变自身的值。

在PHP有八个特殊的预定义常量,它们的值会随着它们在代码中的位置改变而改变,我们称之为魔术常量。

2. PHP的8个魔术常量


序号 魔术常量 示例 描述
1 __LINE__ 5 返回魔术常量输出时所在的行号
2 __FILE__ E:\www\1.php 返回文件路径(绝对路径)
3 __DIR__ E:\www 返回文件所在的目录,当前文件位置:E:\www\1.php
4 __FUNCTION__ taskList 返回函数名称,区分大小写,不在函数中时返回空字符串
5 __CLASS__ app\controller\User 返回当前所在类名,包含命名空间,区分大小写
6 __METHOD__ app\controller\User:test 返回当前所在方法名,包含命名空间,区分大小写
7 __NAMESPACE__ app\controller 返回当前命名空间,区分大小写
8 __TRAIT__ app\controller\Person 返回当前所在Trait名,包含命名空间,区分大小写

3. 使用示例


前四个魔术常量

<?php

echo __LINE__;//3

echo __FILE__;//E:\www\1.php

echo __DIR__;//E:\www

echo userList();//userList

function userList()
{
echo __FUNCTION__;
}

后四个魔术常量

<?php

namespace app\controller;

trait Person {
public static function demo()
{
echo __TRAIT__;//app\controller\Person
}
} class User
{
use Person; public static function test()
{
echo __CLASS__;//app\controller\User echo __METHOD__;//app\controller\User::test
}
} User::test();
User::demo(); echo __NAMESPACE__;//app\controller

最新文章

  1. Redis集群~windows下搭建Sentinel环境及它对主从模式的实际意义
  2. VMware VirtualBox共存时桥接注意
  3. 驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址
  4. Ubuntu下安装Naginx, PHP5(及PHP-FPM),MySQL
  5. MarkMan – 马克鳗,让设计更有爱!
  6. ifconfig
  7. Linux下find命令
  8. -bash: rz: command not found
  9. 微信开放平台,微信登陆第三方网站 提示redirect_uri 参数错误
  10. Android设计模式系列--观察者模式
  11. [转]Oracle 调用存储过程并显示结果集 Oracle.DataAccess.Client OracleDbType.RefCursor
  12. 【夸QT十一】外来物品:通用脚本帮助Web运行基础Linux命令
  13. Shell 获取当前执行脚本的路径
  14. c#笔记之启动新线程
  15. Java 反射 Class类
  16. servlet第1讲初识
  17. node.js核心模块
  18. datetimepicker 使用
  19. Ehcache配置详解及CacheManager使用
  20. C# 之 6.0 新特性

热门文章

  1. 2020-05-27:SpringCloud用了那些组件?分布式追踪链怎么做的?熔断器工作原理?
  2. node mssql 无法连接sql server
  3. 校内测试:T1秋末的落叶(命题人gxl)官方题解
  4. Angular Datatable的一些问题
  5. 微信小程序内置组件web-view的缓存问题探讨
  6. ls-remote -h -t git://github.com/adobe-webplatform/eve.git 报错问题
  7. idea github 上传项目
  8. 第1章 Spark SQL概述
  9. Python全局变量的简单使用
  10. Linux下如何知道是否有人在使坏?