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()