PHP 魔术常量,__LINE__,__FILE__,__DIR__等等8个常用魔术常量
PHP 向它运行的任何脚本提供了大量的预定义常量。
不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。
有八个魔术常量它们的值随着它们在代码中的位置改变而改变。
例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:
__LINE__
文件中的当前行号。
实例
<?php
echo '这是第 " ' . __LINE__ . ' " 行';
?>
以上实例输出结果为:
这是第 “ 2 ” 行
__FILE__
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
实例:
实例
<?php
echo '该文件位于 " ' . __FILE__ . ' " ';
?>
以上实例输出结果为:
该文件位于 “ E:\wamp\www\test\index.php ”
一般可以结合 dirname(脚本所在目录),basename(脚本文件名)函数使用。
__DIR__
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)
实例
<?php
echo '该文件位于 " ' . __DIR__ . ' " ';
?>
以上实例输出结果为:
该文件位于 “ E:\wamp\www\test ”
__FUNCTION__
函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
实例
<?php
function test() {echo '函数名为:' . __FUNCTION__ ;
}
test();
?>
以上实例输出结果为:
函数名为:test
__CLASS__
类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。
在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。
实例
<?php
class test {function _print() {echo '类名为:' . __CLASS__ . "<br>";echo '函数名为:' . __FUNCTION__ ;}
}
$t = new test();
$t->_print();
?>
以上实例输出结果为:
类名为:test 函数名为:_print
__TRAIT__
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。
Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。
实例
<?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"
PHP 魔术常量,__LINE__,__FILE__,__DIR__等等8个常用魔术常量相关推荐
- 使用一些宏跟踪调试__LINE__ __FILE__ __DATE__ __TIME__ __STDC__
使用一些宏跟踪调试 ANSI标准说明了五个预定义的宏名.它们是: __LINE__ __FILE__ __DATE__ __TIME__ __STDC__ C++中还定义了 __cplusplus 如 ...
- 1、如何进行字符串常量中的字符定位_Java String:字符串常量池,我相信会有很多朋友不很理解这部分...
作为最基础的引用数据类型,Java 设计者为 String 提供了字符串常量池以提高其性能,那么字符串常量池的具体原理是什么,我们带着以下三个问题,去理解字符串常量池: 字符串常量池的设计意图是什么? ...
- 常量指针(Pointer to const)与指针常量(Const pointer)
常量指针(Pointer to const)与指针常量(Const pointer) 1. Concepts 很多时候对于这两个概念的困惑来自于中文字面翻译.我们无法通过字面含义直接理解判断该'常量' ...
- c语言中常量分为那两种,C语言中的常量和字面值
数据类型 和 字面值 的关系: 如果有语句 int a = 1234;那么int就是数据类型,a是变量,1234是字面值.int的字面值也就是可以用来初始化int类型变量的东西(不要说用其他变量也可以 ...
- java 常量字符串过长_编译出错:对于常量池来说,字符串表示的UTF过长,那我想知道,JVM的常量池到底有多大?...
输入缓冲说是8000个字符,和这有关吗? String内部是以char数组的形式存储,数组的长度是int类型,那么String允许的最大长度就是Integer.MAX_VALUE了,214748364 ...
- python魔术方法是什么_Python常用魔术方法
什么是魔术方法? 在Python中,所有以双下划线__包起来的方法,统称为Magic Method(魔术方法),它是一种的特殊方法,普通方法需要调用,而魔术方法不需要调用就可以自动执行. 魔术方法在类 ...
- 用排列组合来编码通信(六)——魔术《5张牌的预言》的魔术拓展之《My Fitch Four Glory》...
早点关注我,精彩不错过! 在上一篇中,我们介绍了<5张牌的预言>这个魔术的一个精彩的扩展表演<Eigen's Value>,把这个魔术和数学性质的结合做到了极致,相关内容请戳: ...
- 用排列组合来编码通信(五)——魔术《5张牌的预言》的魔术拓展之《Eigen's Value》...
早点关注我,精彩不错过! 在前面的文章中,我们已经讲到了用托来进行编码通信的系列,相关内容请戳: 用排列组合来编码通信(四)--魔术<5张牌的预言>的数学拓展 用排列组合来编码通信(三)- ...
- 14.String常量池:什么是字符常量???常量池在内存空间中的位置在哪里???判断s7、s8、s9是不是字符常量???代码
14.String常量池:什么是字符常量???常量池在内存空间中的位置在哪里???判断s7.s8.s9是不是字符常量???代码 学习:第3遍 1.什么是字符常量??? 使用双引号直接创建的字符串 称为 ...
最新文章
- 学校计算机机房好处,浅谈学校计算机机房维护
- 正确使用索引(sql优化),limit分页优化,执行计划,慢日志查询
- qt获取开发板ip地址_qt获取网络ip地址的类
- 【Nginx-20180108】Nginx的搭建文件服务器问题一则
- P1311 选择客栈
- 糟糕程序员的20个坏习惯
- MyBatis学习总结(17)——Mybatis分页插件PageHelper
- .Net Core 3.0 IdentityServer4 快速入门02
- 前端学习(2955):项目中组件的全局注册
- php 正则匹配静态资源,Struts2 配置静态资源文件不经过Strut处理(正则匹配)
- 【英语学习】【WOTD】newspeak 释义/词源/示例
- netbeans php 断点调试,windows7 + iis7 + fastcgi + php5 + netbeans + xdebug 调试 php
- 总结几种简单实用的数据恢复技巧
- 如何在苹果Mac上通过通知中心禁用通知?
- java下载不了_教大家电脑java安装不了怎么办
- Fibonacci数列 斐波那契数列
- 参观微软亚洲研究院有感
- WebScoket 实例 简单的网页聊天室
- 服务器画图plots不显示,Rstudio的Plots不显示图形
- 新疆计算机一级考试excel公式,2020年XX专业技术人员继续教育公需课《Excel快速统计》试题及答案...