is_callable în PHP

Verifică dacă o valoare poate fi apelată ca funcție.

Sintaxă
is_callable(mixed $value, bool $syntax_only = false, &$callable_name = null): bool

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_exists o funcție anonimă sau o metodă. function_exists merge doar cu nume de funcții; pentru restul folosește is_callable.

Comenzi înrudite

  • function: Definește o funcție proprie: un bloc de cod cu nume, pe care îl poți apela de oricâte ori.
  • array_map: Aplică o funcție pe fiecare element al unui tablou și returnează tabloul cu rezultatele.
  • gettype: Returnează tipul unei variabile, ca text: integer, string, array etc.