tipos - ¿Puedo usar nombres reservados de PHP para mis funciones y clases?
Me gustaría crear una función llamada "nueva" y una clase llamada "caso".
¿Puedo hacer eso en PHP?
Por defecto no es posible, son palabras reservadas y no puede usarlas.
http://www.php.net/manual/en/reserved.keywords.php
Puede ser que puedas recompilar PHP o algo así para lograr tu objetivo, pero creo (como las otras personas que te respondieron) que no es una buena idea :)
HTH!
En la línea de lo que Benjamin mencionó, hay un uso interesante de "clonar", (que está reservado) en esta clase , línea 545
public function __call($method, $args)
{
if (''clone'' == $method) {
return call_user_func_array(array($this, ''cloneRepository''), $args);
} else {
$class = get_called_class();
$message = "Call to undefined method $class::$method()";
throw new /BadMethodCallException($message);
}
}
En realidad, si bien la definición de dicho método da como resultado un error de análisis, su uso no lo permite, lo que permite algún tipo de solución alternativa:
class A {
function __call($method, $args) {
if ($method == ''new'') {
// ...
}
}
}
$a = new A;
$a->new(); // works!
Una solicitud de función relacionada que data de 2004 todavía está abierta.
Editar enero de 2016
A partir de PHP 7, ahora es posible nombrar sus métodos utilizando palabras clave que hasta ahora estaban restringidas, gracias al Context Sensitive Lexer :
class Foo {
public function new() {}
public function list() {}
public function foreach() {}
}
Todavía no puedes, sin embargo, nombrar a tu clase. Case
, me temo.
No puede hacer eso, una opción alternativa es simplemente usar _case () o _new () como los nombres de las funciones
También mira: