12 Php学习:魔术常量

PHP魔术常量

PHP 向它运行的任何脚本提供了大量的预定义常量。
在这里插入图片描述

不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

有八个魔术常量它们的值随着它们在代码中的位置改变而改变。

​​__LINE__​:当前行号,返回这个常量所在的行号。
​​__FILE__​:当前文件的完整路径和文件名。
​​__DIR__​:当前文件所在的目录。
​​__FUNCTION__​:当前函数的名称。
​​__CLASS__​:当前类的名称。
​​__TRAIT__​:当前 trait 的名称。
​​__METHOD__​:当前方法的名称(包括类名)。
​​__NAMESPACE__​:当前命名空间的名称。

详细介绍和举例

当然,让我们逐个详细解释和举例这八个 PHP 魔术常量:

  1. __LINE____LINE__ 常量返回当前行号,即它所在的代码行在源文件中的行号。这对于调试和记录错误非常有用。

    示例:

    echo "当前行号:" . __LINE__;
    

    输出:

    当前行号:3
    
  2. __FILE____FILE__ 常量返回当前文件的完整路径和文件名。它可用于获取正在执行的脚本的文件名。

    示例:

    echo "当前文件:" . __FILE__;
    

    输出:

    当前文件:/path/to/your/file.php
    
  3. __DIR____DIR__ 常量返回当前文件所在的目录的完整路径。

    示例:

    echo "当前目录:" . __DIR__;
    

    输出:

    当前目录:/path/to/your/directory
    
  4. __FUNCTION____FUNCTION__ 常量返回当前函数的名称。这对于记录日志和调试时非常有用。

    示例:

    function myFunction() {
         
         
        echo "当前函数:" . __FUNCTION__;
    }
    myFunction();
    

    输出:

    当前函数:myFunction
    
  5. __CLASS____CLASS__ 常量返回当前类的名称。如果在类的方法中调用,它将返回该方法所属的类的名称。

    示例:

    class MyClass {
         
         
        public function showClassName() {
         
         
            echo "当前类:" . __CLASS__;
        }
    }
    $obj = new MyClass();
    $obj->showClassName();
    

    输出:

    当前类:MyClass
    
  6. __TRAIT____TRAIT__ 常量返回当前 trait 的名称。如果在 trait 方法中调用,它将返回该方法所属的 trait 的名称。

    示例:

    trait MyTrait {
         
         
        public function showTraitName() {
         
         
            echo "当前 trait:" . __TRAIT__;
        }
    }
    class MyClass {
         
         
        use MyTrait;
    }
    $obj = new MyClass();
    $obj->showTraitName();
    

    输出:

    当前 trait:MyTrait
    
  7. __METHOD____METHOD__ 常量返回当前方法(包括类名)的名称。在类的方法中调用时,它将返回类名和方法名的组合。

    示例:

    class MyClass {
         
         
        public function showMethodName() {
         
         
            echo "当前方法:" . __METHOD__;
        }
    }
    $obj = new MyClass();
    $obj->showMethodName();
    

    输出:

    当前方法:MyClass::showMethodName
    
  8. __NAMESPACE____NAMESPACE__ 常量返回当前命名空间的名称。

    示例:

    namespace MyNamespace;
    echo "当前命名空间:" . __NAMESPACE__;
    

    输出:

    当前命名空间:MyNamespace
    

这些魔术常量在不同的上下文中提供了关于当前执行环境的重要信息,可用于调试、日志记录和动态代码生成等情景。

PHP 命名空间(namespace)

PHP 命名空间(namespace)是在 PHP 5.3 中加入的,目的是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。

PHP 命名空间可以解决以下两类问题:

  • 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
  • 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

在这里插入图片描述

定义命名空间

在 PHP 中,命名空间被用来解决代码命名冲突的问题,它能够将类、函数、常量等封装在命名空间中,防止不同代码库中的同名标识符之间发生冲突。让我详细解释如何定义命名空间以及提供一个示例。

定义命名空间的基本语法:

在 PHP 中,我们使用 namespace 关键字来定义命名空间。命名空间应该出现在所有非 PHP 代码之前,包括 declareuserequireinclude 语句。下面是定义命名空间的基本语法:

namespace MyNamespace;

// 这里是命名空间内的代码

在这个语法中:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百锦再@新空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值