PHP保留的方法名称

时间:2014-10-03 16:51:29

标签: php oop methods reserved-words

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

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

<?php
  class myClass {
      public function min($x){echo(min($x));}
  }

  $obj=new myClass();
  $obj->min(array(5,3,6,3));
?>

2 个答案:

答案 0 :(得分:1)

如果你打扰了实际的尝试:

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

答案 1 :(得分:0)

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

$foo = new Foo();

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

使用min()时没有出现致命错误的原因是因为它是内置函数。

通常,在您自己的实现中使用内置名称被认为是不好的做法,因为这可能会混淆将来会读取您的代码的其他开发人员。