所以......这更像是一种好奇心,而不是一个真正的问题。我不明白:
<?php
define('IS_ARRAY', 1);
echo IS_ARRAY;
结果:解析错误:语法错误,意外&#39 ;;&#39;,期待&#39;(&#39;
我的第一个想法是空的是为空函数保留的。但后来我尝试了:
{{1}}
结果:1
所以......我不明白。为什么空的不能用作常数,例如is_array,die等等。
答案 0 :(得分:9)
empty
不是一个函数,而是一个语言构造(更像是一个运算符而不是一个函数),这意味着解析器在解析时而不是运行时解析它。它是一个保留关键字,你不能将它用于任何你自己的函数名称或常量。
empty
不能成为常规函数的原因是因为它的行为不同。 empty($undefined)
首先解析$undefined
,抛出错误,然后将null
传递给empty
;这正是empty
应该防止的情况,所以它不能通过正常的函数调用规则来播放。
答案 1 :(得分:2)
import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')
root = tree.getroot()
print ET.tostring(root, encoding="UTF-8")
是PHP中的保留关键字。您不能将任何reserved个单词用作常量,类名,函数或方法名,因为这些单词在PHP中具有特殊含义。使用任何其他名称作为常量。
答案 2 :(得分:2)
您可以明确定义&#34; EMPTY&#34;作为常数。问题是你无法直接使用它。
<?php
define("EMPTY", "valueForEmpty");
echo EMPTY; // Wont work because empty is a keyword and PHP doesn't know that you mean the constant.
echo constant("EMPTY"); // Works
答案 3 :(得分:1)
请注意,保留关键字也不区分大小写,并且不能使用 runkit_function_redefine();
将它们定义为常量或重新定义您可以找到here详尽的保留关键字列表