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