首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP 的魔术常量

概述 PHP提供了9个魔术常数,您可以PHP应用程序代码中使用。它们“神奇的”,因为它们在编译时定义的,不像常规常量(您可以自己定义)在运行时定义的。...这意味着它们的值可以根据它们代码的使用位置而更改。 FUNCTION __FUNCTION__魔术常量返回使用它的函数的名称。如果在函数或方法之外使用它,它将返回空字符串。...::class ::class魔术常量返回类的完全限定类名。 这是我发现自己使用最多的魔法常数,特别是Laravel应用程序。当您使用字符串形式的类名时,它特别有用。...Laravel中使用::class 如果你一个Laravel开发者,你会看到这个常量以前用于定义路由和模型关系。...例如,要在Laravel定义一个web路由,你可以在你的routes/web.php文件这样做: use App\Http\Controllers\UserController; Route::

8010

PHP的预定义常量和魔术常量

魔术常量(8个) 1、__LINE__ 返回文件的当前行号。 2、__FILE__ 返回文件的完整路径和文件名。如果用在包含文件,则返回包含文件名。...除非根目录,否则目录名不包括末尾的斜杠。(PHP 5.3.0新增) 4、__FUNCTION__ 返回函数名称(PHP 4.3.0 新加)。...自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。 PHP 4 该值总是小写字母的。 5、__CLASS__ 返回类的名称(PHP 4.3.0 新加)。...自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。 PHP 4 该值总是小写字母的。 6、__TRAIT__ Trait 的名字(PHP 5.4.0 新加)。...执行PHP解释器的操作系统名称,如Windows PHP_SAPI 用来判断使用命令行还是浏览器执行的,如果 PHP_SAPI=='cli' 表示命令行下执行

4.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    什么java常量「建议收藏」

    大家好,又见面了,我你们的朋友全栈君。   相信很多在学java技术的同学,对java常量这个并不陌生,什么java常量呢?java常量就是程序中固定不变的值,不能改变的数据。...Java常量包括整型常量、浮点数常量、布尔常量、字符常量等。   下面我们就一起来看看java的这些常量:   1....JDK7.0允许使用字面值来表示二进制数,前面要以0b或0B开头,目的是为了和十进制进行区分,如0b01101100、0B10110101。   ...需要注意的程序为了标明不同的进制,数据都有特定的标识,八进制必须以0开头,如0711,0123;十六进制必须以0x或0X开头,如0xaf3、0Xff;整数以十进制表示时,第一位不能0,0本身除外...之所以能这样表示,是因为Java采用的Unicode字符集,Unicode字符以\u开头,空白字符Unicode码表对应的值为’\u0000’。   4.

    82030

    PHP的那些魔术常量

    之前我们已经了解了一些常用的魔术方法,除了魔术方法外,PHP还提供一些魔术常量,相信大家日常的工作也都使用过,这里给大家做一个总结。...其实PHP还提供了很多常量但都依赖于各类扩展库,而有几个常量通用并且跟随它们所在代码的位置来提供一些与位置有关的信息,这些就是魔术常量。...魔术常量不分大小写的,__LINE__和__line__一样的,但对于工程化的开发来说,常量还是尽量以大写为主。 __LINE__ 文件的当前行号。 echo __LINE__ ....自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。 PHP 4 该值总是小写字母的。 echo __FUNCTION__ ....自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。 PHP 4 该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。

    1.4K10

    什么字符串常量池_常量池中的字符串对象吗

    常量池和字符串常量池的版本变化 JDK1.7之前运行时常量池逻辑包含字符串常量池存放在方法区, 此时hotspot虚拟机对方法区的实现为永久代 JDK1.7 字符串常量池、静态变量等被从方法区拿到了堆..., 运行时常量池存放的字面量引用 使用双引号方式显式声明的字符串,则直接放入字符串常量池中(final修饰的“变量”可以直接看作双引号字面量) StringTable为什么要调整(1.6-1.7) permSize...默认比较小 永久代垃圾回收频率低 字符串拼接操作 常量常量的拼接结果在常量池,原理编译器优化 常量池中不会存在相同内容的常量 只要其中一个变量,结果就在堆。...(1)存 :那就直接返回该字符串字符串常量池中所对应的地址给栈要引用这个字符串的变量。...(2)不存在: ① jdk 1.6:先在字符串常量池中创建该字符串,地址与堆字符串地址不相同。然后再返回刚创建的字符串字符串常量池中所对应的地址给栈要引用这个字符串的变量。

    47440

    静态成员PHP怎么继承的?

    静态成员PHP怎么继承的? 静态成员,也就是用static修饰的变量或者方法,如果搞不清楚它们实现的原理,就很容易会出现一些错误。这次我们来研究的继承静态成员的调用情况。...; } $b = new B; $b->show(); 之前的文章,我们有说过self的问题。self仅仅只是指向当前这个类。注意,类,不是实例化后的对象。...通过类实例的add()方法进行操作后,$c因为和类有关,所以不管哪个实例对象,操作它之后都会是共享的。而$d作为普通变量,它的作用域仅限制在当前这个实例对象。...; } } F::t(); t()输出的三个结果是什么呢?...详情可以查看之前的文章PHP的Static 测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201912/source/%E9%

    1.4K20

    详解PHP的8个魔术常量

    PHP 向它运行的任何脚本提供了大量的预定义常量。 不过很多常量都是由不同的扩展库定义的,只有加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。...有八个魔术常量它们的值随着它们代码的位置改变而改变。 例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下: __LINE__ 文件的当前行号。 <?...除非根目录,否则目录名不包括末尾的斜杠。(PHP 5.3.0新增) <?php echo '该文件位于 " ' . __DIR__ . ' " '; ?...自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。 PHP 4 该值总是小写字母的。 <?php function test() { echo '函数名为:' ....此常量在编译时定义的(PHP 5.3.0 新增)。 实例: <?

    63020

    php ffi是什么?,什么PHP外部函数接口?

    许多开发人员PHP中使用外部函数接口。在这里,我们介绍了它是什么以及如何使用它。什么PHP外部函数接口?...PHP外部函数接口(FFI)PHP 7.4的接口,使开发人员可以使用纯PHP创建扩展和对外部(也称为“外部”)库的绑定。  他们还可以使用它来调用C函数并访问C数据结构。...为什么PHP外部函数接口很重要?PHP的外部函数接口具有开创性的,因为以前,开发人员只能创建扩展和对外部(也称为“外部”)库的绑定-并使用C语言编写的PHP扩展和绑定来调用C函数并访问C数据结构。...(以PHP加载是非常困难的。)Remi Collet正在测试Redis绑定。FFI的历史和地位是什么? 外部函数接口最初Python和LuaJIT可用,并且使这些语言对于快速原型制作非常有用。...Dmitry StogovPHP的主要核心贡献者之一,也是Perforce员工的Zend,他写了PHP FFI。它最初PHP 7.4引入的,仍被认为实验性的。

    43000

    前端- css 什么好的注释?

    Martin Martin文中详细讨论了代码注释,我不会完全重复他的话。简而言之,他的意思就是,这些注释注定会过时的。程序执行时会忽视注释,所以无法保证这些说明注释会准确的描述代码作用。...这里有一篇文章讲到这种注释为什么不需要的原因,注释应该解释“为什么”,而不是“是什么”,即说明原因而不是说明作用(Why, not what)。...我第一反应就是也许文件还有一个> li > a的选择器,而这行代码就是指那个选择器。也许文件中有一段注释会专门解释为何这样写,但我将文件重头到尾都看了一边,发现并没有这个选择器。...或者也许这段注释指某行已经被删除的代码或引入其他文件的代码?若想要彻底弄清楚这个注释的作用,唯一的方法就是翻遍整个git记录了吧。...但此时也需要问一个问题:有什么办法能让代码自说明呢?需要可以考虑将这些特定的属性移到第二个选择器,专门为这些按钮设置的选择器。

    1.6K20

    Oracle什么BBED?它有哪些作用?

    题目部分 Oracle什么BBED?它有哪些作用?...答案部分 BBED(Block Brower and Editor)用来直接查看和修改Oracle数据块的一个内部工具,它可以直接修改Oracle数据文件块的内容,一些极端恢复场景下比较有用。...因为该工具不被Oracle服务支持,所以,默认没有生成可执行文件的,使用前需要编译生成。...虽然BBED可以在数据库打开的状态下进行修改,但是建议在做任何修改操作之前先关闭数据库,这样可以避免CHECKPOINT进程重写BBED对BLOCK的修改,也避免OracleBBED修改完成之前读BLOCK...Oracle 11g下,BBED的编译文件需要从Oracle 10g下拷贝。Oracle 10g可直接编译。

    53830

    什么JWT及JAVA如何使用?

    目录 1、为什么使用JWT? 2、JWT 的 格式 3、使用 JWT 就绝对安全 吗?...此特性便于可伸缩性, 同时保证应用程序的安全 1、为什么使用JWT?...不使用JWT的情况下,我们一般选择的cookie和session来进行服务鉴权(判断是否登录,是否具有某种权限),但是这是针对于只有一个客户端的情况下,现在客户端从pc端增长到了app端,现在就是多端访问了...多端访问的情况下,可能就会存在一个问题,获取不到session和cookie。...这就引出了微服务架构如何进行服务鉴权的方案,这个方案就是 JWT. 2、JWT 的 格式 JWT就是一个字符串,经过加密处理与校验处理的字符串,形式为:A.B.C 三段,每一段中间通过 .

    3K30

    PHPdefine() 与 const定义常量的区别详解

    本文实例讲述了PHPdefine() 与 const定义常量的区别。分享给大家供大家参考,具体如下: 前言 今天Stackoverflow又看到一个很有趣的文章,所以翻译过后摘了过来。...文章PHP开发成员之一的NikiC写的,权威性自然毋庸置疑 正文 PHP5.3,有两种方法可以定义常量: 使用const关键字 使用define()方法 const FOO = 'BAR'; define...一个最平常的例子当你检测一个常量是否已经被定义时: if (!...而define目前不支持这一功能的,但是该功能会在PHP7被实现: const FOO = [1, 2, 3]; // PHP 5.6有效 define('FOO', [1, 2, 3]);...尤其使用define定义大量常量时,PHP的运行速度会变得非常慢。

    1K10

    什么线程组,为什么 Java 不推荐使用?

    线程组使用 Java 线程进行管理和组织的一种模型。...Java 的线程组一个 ThreadGroup 类对象,它充当了一个父容器,可以将同一类线程分成一组,并提供追踪这些线程状态、统计信息及管理这些线程的方法。...在线程组,如果发生未捕获异常,可以通过 Thread.UncaughtExceptionHandler 进行处理。 Java ,虽然线程组一种功能强大的机制,但实际上并不推荐使用。...3、容易引起歧义 Java ,虽然 ThreadGroup 的设计旨在通过将一组线程分到同一个容器来轻松管理和控制它们,但如果使用错误,可能会导致线程状态。...因此, Java ,线程组已基本过时,推荐使用 Executor 框架等新的更实用的工具来进行线程管理。

    30220

    什么php递归算法_PHP递归算法(一)

    大家好,又见面了,我你们的朋友全栈君。 在前面的文章,我们为大家介绍了PHP算法系列之《PHP随机取一算法》和《PHP冒泡排序算法》,需要的朋友可以了解学习。...本篇文章我们将继续为大家带来常见的PHP算法,即PHP递归算法。 PHP开发过程,递归算法通常用于无限极分类。那么所谓递归就是一种函数调用自身的机制。...简单来说就是函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用。...并且递归算法的实现方法有多种的,如通过“静态变量”、“全局变量”、“引用传参”的方式。 下面我们就结合具体的代码示例,给大家介绍其中一种方法即利用静态变量的方法! 代码如下:<?...本篇文章就是关于利用静态变量实现PHP递归算法的介绍,在后续的文章,我们会继续为大家介绍PHP递归算法的相关实现方法。

    3.8K10
    领券