function_exists

function_exists($function)

Renvoie true quand une fonction du nom donné existe – intégrée, issue d’une extension ou la vôtre. La casse des lettres ne compte pas.

Paramètres

  • $function – le nom de la fonction sous forme de chaîne.

Exemples

var_dump(function_exists("strlen")); // bool(true)
var_dump(function_exists("STRLEN")); // bool(true)
var_dump(function_exists("nonexistent_function")); // bool(false)
// les constructions du langage ne sont pas des fonctions
var_dump(function_exists("isset")); // bool(false)
// une fonction d'une extension
var_dump(function_exists("mb_strlen")); // bool(true)
// un remplacement d'une fonction de PHP 8.0 pour les versions plus anciennes
if (!function_exists("str_contains")) {
  function str_contains($haystack, $needle) { return $needle === "" || strpos($haystack, $needle) !== false; }
}
var_dump(str_contains("garth.cz", "th")); // bool(true)

Points d’attention

  • Pour les méthodes de classe, utilisez method_exists(), pour les classes class_exists().
  • Si toute une extension est activée se vérifie avec extension_loaded(), par exemple extension_loaded("mbstring").
  • Entourez toujours le remplacement d’une fonction d’une version plus récente de PHP d’une condition function_exists. Sans elle, le script échoue sur une version récente avec une erreur de déclaration en double.
  • L’existence d’une fonction ne signifie pas que vous pouvez l’appeler d’après l’entrée de l’utilisateur. Gardez les noms autorisés dans une liste.

Fonctions associées :
is_callable()
defined()
call_user_func()
extension_loaded()