J'ai rencontré un comportement très étrange dans certains de nos codes PHP aujourd'hui. Nous avons une classe pour traiter les fichiers. Il est quelque chose comme ceci:mot réservé non-listé?
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;
}
}
Il nous a semblé assez normal, mais le $ this-> fonction upload() ne sont jamais retournés quoi que ce soit, mais NULL. Nous avons vérifié que la fonction correcte était en cours d'exécution. Nous avons répercuté sa valeur de retour avant son retour. Nous avons essayé seulement de retourner une vraie valeur ou même une chaîne. Tout allait bien. Mais $ this-> upload est toujours évalué à NULL. De plus, il n'y avait rien dans les journaux et ERROR_ALL est activé.
Dans l'exaspération, nous avons changé le nom de la fonction à foo_upload. Tout à coup tout a fonctionné. "upload" ne figure pas dans la liste des PHP reserved words. Quelqu'un at-il des idées pour lesquelles une fonction de classe nommée "upload" échouerait?
Avez-vous mis un écho dans la fonction de téléchargement? –
Pourrait-il être remplacé quelque part? – Greg
@Chacha: Nous avons mis un écho dans la fonction de téléchargement. Il a donné les valeurs attendues. @Greg: la classe AFile n'a pas d'enfants (pour le moment) donc ses méthodes ne doivent pas être écrasées. – dnagirl