Ce face function_exists
function_exists returnează true dacă o funcție cu numele dat poate fi apelată. Numele nu ține cont de majuscule. Funcționează și pentru funcțiile din extensii, deci poți verifica dacă serverul are, de exemplu, mb_strlen sau curl_init.
În teme și pluginuri WordPress este folosită pentru a defini o funcție doar dacă nu a fost deja definită de altcineva, ca să eviți eroarea Cannot redeclare function.
Pentru construcții ale limbajului, precum echo, isset sau empty, returnează false, pentru că nu sunt funcții.
Parametri
| Parametru | Descriere |
|---|---|
$function |
Numele funcției, ca text. |
Ce returnează
true dacă funcția există, altfel false.
Exemple
Exemplul 1: Funcții din PHP, proprii și construcții
<?php
function formateazaPret(float $p): string { return number_format($p, 2, ",", ".") . " lei"; }
var_dump(function_exists("strlen"));
var_dump(function_exists("FormateazaPret"));
var_dump(function_exists("isset"));
var_dump(function_exists("functie_inexistenta"));
Rezultat
bool(true)
bool(true)
bool(false)
bool(false)
Exemplul 2: Definire doar dacă lipsește
<?php
if (!function_exists("dex_slug")) {
function dex_slug(string $text): string
{
return trim(preg_replace("/[^a-z0-9]+/", "-", strtolower($text)), "-");
}
}
echo dex_slug("Instalare PHP 8.5 pe macOS");
Rezultat
instalare-php-8-5-pe-macos
Greșeli frecvente
- Verifici cu
function_existso metodă dintr-o clasă. Funcția caută doar funcții independente; pentru metode foloseștemethod_exists.
Comenzi înrudite
method_exists: Verifică dacă o clasă sau un obiect are o metodă cu un anumit nume.class_exists / interface_exists / enum_exists: Verifică dacă o clasă (class_exists), o interfață sau un enum a fost definit.call_user_func / call_user_func_array: Apelează o funcție dată printr-o variabilă (nume, closure sau metodă), cu argumentele primite.function: Definește o funcție proprie: un bloc de cod cu nume, pe care îl poți apela de oricâte ori.