命名空间和函数名称冲突

时间:2014-03-31 23:29:32

标签: php namespaces

我已经为我的类声明了一个名为list()的方法,并且为了避免它与PHP自己的list()函数的colliosn /错误,请将它放在命名空间中。但不幸的是我仍然得到错误。她的情况是:

我在文件的顶部声明了一个命名空间:

<?php namespace MyNameSpace\ThisClass;
use MyNameSpace\ThisClass;

然后上课:

Class AClass 
{
  function list()
{
// something here
}
}

然后实现它。

$x = MyNameSpace\ThisClass\AClass();

我已经在一个名称空间中声明了该类,并期望它忽略与PHP自己的list()函数的list()方法冲突。但是,php会抛出以下错误:

syntax error, unexpected 'list' (T_LIST), expecting identifier (T_STRING)

考虑到我的list()函数嵌套在命名空间中,为什么我仍然会收到错误?

1 个答案:

答案 0 :(得分:7)

PHP Docs开始:

  

这些词在PHP中具有特殊含义。其中一些代表了一些东西   看起来像函数,有些看起来像常量,等等 - 但是   他们不是,真的:他们是语言结构。你不能使用任何   以下单词为常量名称,功能方法   名。使用它们作为变量名通常是可以的,但可能会导致   混乱。

保留字样如:

  • list()
  • die()
  • include_once()