JeuWeb - Crée ton jeu par navigateur

Version complète : Redéclarer une fonction
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Bonjour à tous,

Voila, je voudrais savoir s'il existe un moyen pour redéclarer une fonction qui existe déjà dans PHP.

En faite, je voudrais faire un truc du genre (je sais que sa ne marche pas)
Code PHP :
<?php
function mysql_error()
{
return 
mysql_error().'fichier: '.__file__.' ligne: '.__line__;
}
?>

Voila, je doute que ce soit possible, mais on ne sais jamais, peut être que quelqu'un une solution 2. Le must serait même l'envoie de l'erreur par e-mail 45.

Fin bref...
A mon avis, et après quelques recherches, c'est impossible, autant te créer une classe SQL qui gèrera tes erreurs, y'a quelques sujets qui en parlent sur la board.
tu te rends compte que ton code serait "une boucle infinie"; car tu aurais une fonction récursive (qui s'appelle elle-même) sans condition de sortie pour la récursion; ben oui, si les mot-clé/fonction interne étaient pas protégée et que tu surcharge comme tu voudrais le faire y aurais un soucis34

remplace dans ton code mysql_error() par n'importe quoi si tu comprends pas ou est le soucis:

function bidon(){
return bidon().'fichier...';
}



edit:
en plus j'avais pas vu34
ta fonction te serviras pas à faire ce que tu veux faire (__LINE__ et __FILE__ serait remplacé par la ligne/fichier de la déclaration de ta fonction... et non l'emplacement de ton erreur dans ton code)
une fonction PHP est une fonction, ça n'a rien à voir avec une macro >_<

sinon tu peux regarder du coté de error_log() pour ton envoi d'email.
Citation :tu te rends compte que ton code serait "une boucle infinie";

Oui je le sais, ce code est juste pour illustré, c'est plus facile a comprendre comme sa que d'expliquer avec des mots...
Citation :ta fonction te serviras pas à faire ce que tu veux faire (__LINE__ et __FILE__ serait remplacé par la ligne/fichier de la déclaration de ta fonction... et non l'emplacement de ton erreur dans ton code)
une fonction PHP est une fonction, ça n'a rien à voir avec une macro >_<

Sa par contre je le savais pas...

Peut on s'en servir de __line__ comme paramètre de fonction ?

Citation :A mon avis, et après quelques recherches, c'est impossible, autant te créer une classe SQL qui gèrera tes erreurs, y'a quelques sujets qui en parlent sur la board.

Ouais, m'enfin le jeu est déjà bien avancé... j'ai juste toujours remit a plus tard la gestion des erreurs 65
oui tu peux utiliser __LINE__, etc comme paramètre de fonction.

34 et pour ton problème tu te crée une fonction générale pour tes erreur genre
function error_msg($err, $file, $line){
return $err.' fichier: '.$file.' ligne: '.$line;
}

et tu utilise des appels genre;
error_msg(mysql_error(),__FILE__,__LINE__);


autre option:
trigger_error() et set_error_handler().
Les Exceptions étendues sont peut être une bonne idée pour la gestion des erreurs. Enfin, je trouve que c'est un manière élégante et simple de gérée les erreurs et de faire leur journalisation. Mais ce n'est que mon avis.

Code PHP :
function myFunction()
{
    throw new 
Exception('MyError');
}

try {
    
myFunction();
}
catch (
Exception $myException)
{
    echo 
$myException;


En cherchant sur le Net tu trouveras plus d'informations, sur les Exception en général, et plus précisément dans PHP.

Bonne chance pour la suite.

http://www.php.net/manual/fr/language.exceptions.php
http://www.php.net/manual/fr/language.ex...ending.php
Avec les espaces de noms, tu peux faire un truc qui ressemble à ce que tu souhaites faire.
Enfin ça me semble la meilleure solution.

http://fr.php.net/manual/fr/language.namespaces.php
URLs de référence