oop — имена зарезервированных методов PHP

Кроме тех, которые описаны 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

Решение

Вы не можете использовать имена языковых конструкций в классах относительно пространств имен, в то время как вы можете использовать имена встроенных функций в пространстве имен. Пространство имен в этом случае является методом класса.

$foo = new Foo();

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

Причина, по которой вы не получаете фатальную ошибку при использовании min() потому что это встроенная функция.

Обычно считается плохой практикой использовать встроенные имена в ваших собственных реализациях, потому что это может сбить с толку других разработчиков, которые будут читать ваш код в будущем.

0

Другие решения

Если вы на самом деле пытались:

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

По вопросам рекламы [email protected]