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()
时不会出现致命错误的原因是因为它是一个内置函数。
通常,在自己的实现中使用内置名称被认为是一种糟糕的做法,因为这可能会让将来阅读代码的其他开发人员感到困惑。