iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >web安全php基础_魔术常量&__FUNCTION__与__METHOD__的区别
  • 165
分享到

web安全php基础_魔术常量&__FUNCTION__与__METHOD__的区别

phpandroid开发语言php魔术常量php可变常量functionmethood 2023-09-21 12:09:21 165人浏览 薄情痞子
摘要

PHP 魔术常量 php 向它运行的任何脚本提供了大量的预定义常量。 不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。 有八个魔术常

PHP 魔术常量

php 向它运行的任何脚本提供了大量的预定义常量。

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

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

例如 LINE 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:

__LINE__

__LINE__输出当前文件中代码所在位置的当前行号。

在这里插入图片描述
输出如下
在这里插入图片描述

__FILE__

文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
在这里插入图片描述
输出效果如下

在这里插入图片描述

__DIR__

文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)
在这里插入图片描述
输出为
在这里插入图片描述

__FUNCTioN__

函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
在这里插入图片描述
输出为
在这里插入图片描述

__CLASS__

类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。

在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 _CLASS_ 对 trait 也起作用。当用在 trait 方法中时,_CLASS_ 是调用 trait 方法的类的名字。
在这里插入图片描述
在这里插入图片描述

__TRAIT__

Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。

Trait 名包括其被声明的作用区域(例如 Foo\Bar)。

从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。

在这里插入图片描述
输出如下
在这里插入图片描述

__METHOD__

类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
在这里插入图片描述
输出如下
在这里插入图片描述

__FUNCTION__与__METHOD__的区别

FUNCTION 返回 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
METHOD 返回类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
具体如下

//定义函数function outFunction(){    echo '__METHOD__ =>'.__METHOD__;    echo '
'
; echo '__FUNCTION__ =>'.__FUNCTION__;}//定义类class Test{ static function Gongwen() { echo '__METHOD__ =>'.__METHOD__; echo '
'
; echo '__FUNCTION__ =>'.__FUNCTION__; } static function bestphper() { function innerFunction() { echo '__METHOD__ =>'.__METHOD__; echo '
'
; echo '__FUNCTION__ =>'.__FUNCTION__; } innerFunction(); }}//测试Test::gongwen();echo '
'
;Test::bestphper();echo '
'
;outFunction();?>

输出如下
在这里插入图片描述
可以看出主要有两种情况
情况一:
__FUNCTION__与__METHOD__ 同处于“类外”的函数体中,他们的返回值是一样一样滴.
情况二:
__FUNCTION__与__METHOD__ 同处于“类内”的函数体中,__METHOD__ 比 __FUNCTION__前面多了个“类名::”

__NAMESPACE__

当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)

实例:
在这里插入图片描述
输出如下
在这里插入图片描述

来源地址:https://blog.csdn.net/weixin_44368963/article/details/131587492

--结束END--

本文标题: web安全php基础_魔术常量&__FUNCTION__与__METHOD__的区别

本文链接: https://www.lsjlt.com/news/414036.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作