function_exists
function_exists($function)
Zwraca true, gdy istnieje funkcja o podanej nazwie – wbudowana, z rozszerzenia albo własna. Wielkość liter nie ma znaczenia.
Parametry
- $function – nazwa funkcji jako ciąg znaków.
Przykłady
var_dump(function_exists("strlen")); // bool(true)
var_dump(function_exists("STRLEN")); // bool(true)
var_dump(function_exists("nonexistent_function")); // bool(false)
// konstrukcje językowe nie są funkcjami
var_dump(function_exists("isset")); // bool(false)
// funkcja z rozszerzenia
var_dump(function_exists("mb_strlen")); // bool(true)
// zamiennik funkcji z PHP 8.0 dla starszych wersji
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)
Na co uważać
- Dla metod klas używaj method_exists(), dla klas class_exists().
- Czy włączone jest całe rozszerzenie, sprawdza extension_loaded(), na przykład extension_loaded("mbstring").
- Zamiennik funkcji z nowszej wersji PHP zawsze umieszczaj w warunku z function_exists. Bez niego skrypt w nowszej wersji przerwie działanie błędem o podwójnej deklaracji.
- To, że funkcja istnieje, nie znaczy, że wolno ją wywołać według danych od użytkownika. Dozwolone nazwy trzymaj na liście.
Powiązane funkcje:
is_callable()
defined()
call_user_func()
extension_loaded()