Ce face is_callable
is_callable returnează true pentru numele unor funcții existente ("strlen"), funcții anonime, funcții săgeată și metode de obiecte date ca tablou [$obiect, "metoda"].
Este util când primești o funcție ca parametru (de exemplu un „callback”) și vrei să o verifici înainte de a o apela.
Parametri
| Parametru | Descriere |
|---|---|
$value |
Valoarea verificată. |
$syntax_only |
Opțional. true verifică doar forma valorii, nu și dacă funcția există. |
$callable_name |
Opțional. Variabilă în care se salvează numele funcției. |
Ce returnează
true dacă valoarea poate fi apelată, altfel false.
Exemple
Exemplul 1: Ce poate fi apelat
<?php
var_dump(is_callable("strlen"));
var_dump(is_callable("functie_inexistenta"));
var_dump(is_callable(fn($x) => $x * 2));
Rezultat
bool(true)
bool(false)
bool(true)
Exemplul 2: Formatare opțională
<?php
function afiseaza(string $text, $formatare = null): void
{
echo is_callable($formatare) ? $formatare($text) : $text;
echo "\n";
}
afiseaza("dexblog");
afiseaza("dexblog", "strtoupper");
Rezultat
dexblog
DEXBLOG
Greșeli frecvente
- Verifici cu
function_existso funcție anonimă sau o metodă.function_existsmerge doar cu nume de funcții; pentru restul foloseșteis_callable.