53 votes

En PHP, comment vérifier si une fonction existe ?

Comment puis-je vérifier si la fonction my_function existe déjà en PHP ?

103voto

Mark Elliot Points 31871

Utilisation de function_exists :

 if(function_exists('my_function')){
    // my_function is defined
}

19voto

Avinash Saini Points 229

http://php.net/manual/en/function.function-exists.php

 <?php
  if (!function_exists('myfunction')) {

     function myfunction()
     {
       //write function statements
     }

}
 ?>

7voto

snm-yah Points 2067
var_dump( get_defined_functions() );

AFFICHAGE toutes les fonctions existantes

3voto

SeanDowney Points 5299

Je tiens à souligner ce que kitchin a signalé sur php.net :

 <?php
// This will print "foo defined"
if (function_exists('foo')) {
  print "foo defined";
} else {
  print "foo not defined";
}
//note even though the function is defined here, it previously was told to have already existed
function foo() {}

Si vous souhaitez éviter une erreur fatale et définir une fonction uniquement si elle n'a pas été définie, vous devez procéder comme suit :

 <?php
// This will print "defining bar" and will define the function bar
if (function_exists('bar')) {
  print "bar defined";
} else {
  print "defining bar";
  function bar() {}
} 

1voto

Ram Pukar Points 386

Vérification de plusieurs function_exists

 $arrFun = array('fun1','fun2','fun3');
if(is_array($arrFun)){
  $arrMsg = array();
  foreach ($arrFun as $key => $value) {
    if(!function_exists($value)){
      $arrMsg[] = $value;
    }
  }
  foreach ($arrMsg as $key => $value) {
    echo "{$value} function does not exist <br/>";
  }
}
function fun1(){
}

Output

fun2 function does not exist 
fun3 function does not exist 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X