除了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));
?>
答案 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()
时没有出现致命错误的原因是因为它是内置函数。
通常,在您自己的实现中使用内置名称被认为是不好的做法,因为这可能会混淆将来会读取您的代码的其他开发人员。