Version complète: sur le forum Webmaster Hub : Ecraser une fonction interne
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
captain_torche
Je cherche à redéfinir certaines fonctions de PHP, mais je ne trouve pas comment le faire.
J'ai bien vu un override_function, mais la version PHP n'est pas précisée (et PECL, c'est quoi ?)

Pour finir, si jamais il était possible de redéfinir une fonction, serait-il possible de l'appeler elle-même au sein de la nouvelle définition, ou risque-ton une boucle infinie ?

Ex :
CODE
override function print_r($tab) {
echo '<pre>';
print_r($tab);
echo '</pre>';
}
xpatval
Concernant PECL, c'est une librairie d'extension de PHP, pour le C.

Pour le reste, ne connaissant pas ces possibilités, je vais m'amuser à tester, si j'arrive à installer/activer cette librairie...

xpatval
Dash
Installation avec WAMP : ajouter la ligne "extension=php_apd.dll" avec les autres extensions.

Exemple de code :
CODE
<?php
$arg = array(1,2,3,4,5);
print_r($arg );

rename_function( 'print_r', 'print_r_bak');

function override_print_r($tab)
{
  echo '<pre>';
  print_r_bak($tab); #sinon boucle infinie
  echo '</pre>';
  return;
}

override_function('print_r', '$tab', 'return override_print_r($tab);');
print_r($arg );
?>



Le probleme de ce code c'est qu'il n'est pas transportable, car necessite un environnement particulier (PHP en mode cgi + librairie apd)
smile.gif
captain_torche
Ok, merci beaucoup !
Je crois que je vais garder ma fonction print_t, alors wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.