Maison > Questions et réponses > le corps du texte
<?php
namespace MyProject;
function addcslashes(){
echo 'work';
}
addcslashes(); //echo work
<?php
namespace MyProject;
function empty(){
echo 'work';
}
empty(); //Parse error</b>: syntax error, unexpected 'empty' (T_EMPTY), expecting identifier (T_STRING) or '(' in namespace.php on line 4
如上,使用某些内置函数名(如empty,isset,print)会报syntax error,而某些内置函数名却没有问题(如addcslashes,mysql_select_db,explode)
请问这是什么原因?又该该如何规避?希望大神能解答,谢谢
黄舟2017-04-10 16:25:34
请参考:
http://php.net/manual/en/tokens.php
这些都是php解释器进行解释的时候的关键词。
函数名什么的,都不能用这里面的字符。
(另外,尽量不要把函数起名成系统的函数的名字啊喂!)
巴扎黑2017-04-10 16:25:34
php有语言结构与函数之分,在命名空间出来后,函数可以在不同的命名空间中使用,但语言结构却不行。
何为语言结构,这个其实我也不太清楚,只要记住他们其实是系统的关键字就行了,常用的isset,empty,print,requrie,list,die等这些都是,所以这些都不可以再次作为函数与方法使用