0

0

带你学会PHP常用的八个魔术常量的使用(示例详解)

WBOY

WBOY

发布时间:2021-11-03 15:17:03

|

4338人浏览过

|

来源于php中文网

原创

在之前的文章《带你看懂php常量的定义与值的获取》中详细的介绍了php中的常量基础的相关知识,本篇文章我们一起来看一下php中的魔术常量相关知识,希望对大家有帮助!

带你学会PHP常用的八个魔术常量的使用(示例详解)

在之前的文章中我们了解了PHP中常量简单的定义与获取的相关基础知识,还有一些魔术方法。接下来我们就来看一下魔术常量的相关知识,来看一下什么是魔术常量,魔术常量主要使用的有哪些。

魔术常量是什么

魔术常量准确来说并不能算是常量,常量我们在之前的文章中我们介绍到,常量被定义之后是不能被改变的。但是魔术常量是PHP预定义的一些常量,这些预定义的常量能够因为所在位置的变化而变化。

立即学习PHP免费学习笔记(深入)”;

很多的预定义常量在任意一个脚本中都是PHP提供的,常量不同他们的拓展库也是不同的。魔术常量可以理解为特殊的预定义常量。

其中魔术常量的书写格式通常是用两个下划线(__)开头两个下划线结尾,比如:__LINE____FILE__等等。讲到书写格式的话,需要知道,魔术常量不区分大小写,但是尽量书写的时候还是采用大写的形式。

魔术常量的使用

PHP的运行环境中提供了八个魔术常量,就像上文中说的,虽然被叫做常量,但准确来说不算是常量,他们的值随着代码中的变化而改变,接下来我们分别来看一下这八个魔术变量。

1.__LINE__  表示文件中当前的行号

接下来我们通过示例来看一下__LINE__ 魔术常量的使用,并且看一下随着位置的变化魔术常量的值有什么变化。

示例如下:

';
echo '这是第 " ' . __LINE__ . ' " 行
'; echo '---------------
'; echo '这是第 " ' . __LINE__ . ' " 行'; ?>

输出结果:

1103.04.png

在上述示例中,我们通过魔术变量__LINE__就能够获取当前代码所在位置的行数。

其中需要注意的是:我们能够发现,当代码所在的位置不同,其所输出的结果也是不同的。所以我们上文中说了魔术常量并不能算是常量,它的值随着代码的变化而改变。我们接着往下看:

2.__FILE__  表示文件的绝对路径

通过__FILE__能够获取文件的绝对路径,并且这个路径包含了文件名。其中需要注意的是,如果该魔术常量用在了包含文件中,那么返回的结果是被包含的文件名。

下面我们通过示例来看一下__FILE__的使用,示例如下:

输出结果:

1103.05.png

在上述示例中我们便是通过__FILE__完成了对文件绝对路径的获取。

3.__DIR__  用于表示文件所在目录

通过__DIR__能够获取文件所在的目录,这个文件所在的目录与__FILE__获取文件的绝对路径还是不一样的,文件所在的目录是不带有当前文件的文件名的。也可以把该魔术常量理解为 dirname(__FILE__)

下面我们通过示例来看一下__DIR__魔术常量的使用,示例如下:

输出结果:

1103.07.png

上述示例中我们通过两种方法,都获取到了当前文件所在的目录,一个是通过__DIR__魔术常量,另一个是dirname(__FILE__),它们俩能够达到的效果是相同的。

4.__FUNCTION__  用于获取当前函数名或方法名

码上飞
码上飞

码上飞(CodeFlying) 是一款AI自动化开发平台,通过自然语言描述即可自动生成完整应用程序。

下载

通过__FUNCTION__能够获取当前函数的名称或者方法的名称,接下来我们通过示例来看一下__FUNCTION__魔术常量的用法。

示例如下:

输出结果:

1103.08.png

通过上述示例我们了解__FUNCTION__能够获取当前函数的函数名。

5.__CLASS__  用于获取当前的类名

通过__CLASS__可以用于获取当前的类名,齐总也包括了当前类的作用区域或命名空间。接下来我们通过示例来看一下__CLASS__的使用。

示例如下:

";
  echo '通过__FUNCTION__获取的函数名为:' . __FUNCTION__ ;
 }
}
$t = new test();
$t->_print();
?>

输出结果:

1103.09.png

通过上述示例已经了解在PHP中可以通过__CLASS__来获取当前的类名。

6.__TRAIT__  当前的trait名称

通过__TEAIT__能够表示当前的trait名称,这其中包括了trait的作用区域或者命名空间。接下来我们通过示例来看一下__TRAIT__的使用。

示例如下:

sayHello();
?>

输出结果:

1103.10.png

7.__METHOD__  当前的方法名

通过__METHOD__能够获取当前的方法名,其中也包括类名,接下来我们通过示例来看一下__METHOD__的使用方法,示例如下:

';
}
class TestMethodClass
{
    function testMethod1()
    {
        echo '当前的方法名和类名为:' . __METHOD__ . PHP_EOL; 
    }
}
testMethod();
$test = new TestMethodClass();
$test->testMethod1();
?>

输出结果:

1103.11.png

上述示例中,我们通过__METHOD__获取了函数名和方法名。其中方法名中包括了类名。

8.__NAMESPACE__  当前文件的命名空间名称

通过__NAMESPACE__可以获取当前文件的命名空间名称,接下来我们通过示例来看一下,示例如下:

输出结果:

1103.12.png

到此我们便是通过示例将八种魔术常量了解了一下。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

178

2026.01.28

包子漫画在线官方入口大全
包子漫画在线官方入口大全

本合集汇总了包子漫画2026最新官方在线观看入口,涵盖备用域名、正版无广告链接及多端适配地址,助你畅享12700+高清漫画资源。阅读专题下面的文章了解更多详细内容。

35

2026.01.28

ao3中文版官网地址大全
ao3中文版官网地址大全

AO3最新中文版官网入口合集,汇总2026年主站及国内优化镜像链接,支持简体中文界面、无广告阅读与多设备同步。阅读专题下面的文章了解更多详细内容。

79

2026.01.28

php怎么写接口教程
php怎么写接口教程

本合集涵盖PHP接口开发基础、RESTful API设计、数据交互与安全处理等实用教程,助你快速掌握PHP接口编写技巧。阅读专题下面的文章了解更多详细内容。

2

2026.01.28

php中文乱码如何解决
php中文乱码如何解决

本文整理了php中文乱码如何解决及解决方法,阅读节专题下面的文章了解更多详细内容。

4

2026.01.28

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

8

2026.01.28

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

24

2026.01.27

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

122

2026.01.26

edge浏览器怎样设置主页 edge浏览器自定义设置教程
edge浏览器怎样设置主页 edge浏览器自定义设置教程

在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

72

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号