PHP保留方法名称


PHP reserved method names

http://php.net/manual/en/reserved.keywords.php,是否有不应该使用的方法名称?例如,我可以制作一个方法public function echo($x)并将其用作$this->echo('Hello');吗?

EDIT>显然,我不能使用echo,因为它是一种语言构造,但可以使用min。以下内容不会导致错误。

<?php
  class myClass {
      public function min($x){echo(min($x));}
  }
  $obj=new myClass();
  $obj->min(array(5,3,6,3));
?>

如果你真的想尝试一下:

php > class foo { function echo($bar) { print($bar); } }
PHP Parse error:  syntax error, unexpected 'echo' (T_ECHO), expecting identifier (T_STRING) in php shell code on line 1

在关于命名空间的类中不能使用语言构造名称,而可以在命名空间中使用内置函数名称。在这种情况下,命名空间是一个类的方法。

$foo = new Foo();
$foo->array_key_exists(); // Good
$foo->isset(); // Fatal error, since isset() a language construct
$foo->include(); // Also fatal error

使用min()时不会出现致命错误的原因是因为它是一个内置函数。

通常,在自己的实现中使用内置名称被认为是一种糟糕的做法,因为这可能会让将来阅读代码的其他开发人员感到困惑。