Hoy me encontré con un comportamiento muy extraño en algunos de nuestros códigos PHP. Tenemos una clase para tratar con archivos. Es algo como esto:palabra reservada no listada?
class AFile {
//usual constructor, set and get functions, etc.
//...
public function save() {
//do some validation
//...
if($this->upload()) { //save the file to disk
$this->update_db(); //never reached this line
}
}
private function upload() {
//save the file to disk
//...
return ($success) ? true : false;
}
}
que parecía bastante normal para nosotros, pero la función $ this-> carga() nunca volvieron otra cosa que NULL. Verificamos que se estaba ejecutando la función correcta. Nos hicimos eco de su valor de retorno antes de que regresara. Intentamos solo devolver un valor verdadero o incluso una cadena. Todo estaba saliendo bien. Pero $ this-> upload todavía evaluado a NULL. Además, no había nada en los registros y ERROR_ALL está activado.
En exasperación hemos cambiado el nombre de la función a foo_upload. De repente todo funcionó. "cargar" no está en la lista de PHP reserved words. ¿Alguien tiene alguna idea de por qué una función de clase llamada "cargar" fallaría?
¿Pusiste un eco dentro de la función de carga? –
¿Podría estar siendo anulado en alguna parte? – Greg
@ Chacha: Pusimos un eco dentro de la función de carga. Dio los valores esperados. @Greg: la clase AFile no tiene hijos (todavía) por lo que sus métodos no deben ser anulados. – dnagirl