php - 为什么不能定义一个名为 EMPTY 的常量

2023-12-01

所以...这更多的是出于好奇,而不是真正的问题。我不明白这个:

<?php
     define('EMPTY', 1);
     echo EMPTY;

结果:解析错误:语法错误,意外的“;”,期望“(”

我的第一个想法是,empty 是为空函数保留的。但后来我尝试了:

<?php
     define('IS_ARRAY', 1);
     echo IS_ARRAY;

结果:1

所以...我不明白。为什么empty不能用作常量,而is_array、die等可以。


empty不是一个函数,而是一个语言构造(更像是一个运算符而不是一个函数),这意味着它是由解析器在解析时而不是运行时解析的。它是一个保留关键字,您不能将它用于任何自己的东西,例如函数名称或常量。

原因empty不能是常规函数,因为它的行为不同。empty($undefined)首先会解决$undefined,抛出错误,然后通过null to empty;情况确实如此empty应该是阻止的,所以它不能按照正常的函数调用规则发挥作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php - 为什么不能定义一个名为 EMPTY 的常量 的相关文章

随机推荐