is_callable

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

is_callable Verifică dacă conținutul unei variabile poate fi apelat în calitate de funcție

Descrierea

is_callable ( mixed $var [, bool $syntax_only = false [, string &$callable_name ]] ) : bool

Verifică dacă conținutul unei variabile poate fi apelat în calitate de funcție. Aceasta poate verifica dacă o variabilă simplă conține denumirea unei funcții valide, sau dacă un tablou conține un obiect și denumirea unei funcții codificate în mod corespunzător.

Parametri

var

Valoarea spre a fi verificată.

syntax_only

Dacă este stabilit în TRUE atunci funcția verifică numai dacă name poate fi o funcție sau o metodă. Ea doar va respinge variabilele simple care nu sunt stringuri, sau tablourile care nu au structuri valide pentru a fi utilizate în calitate de funcție de apel invers. Cele valide trebuie să aibă doar 2 înregistrări, prima dintre care este un obiect sau un string, și a doua - un string.

callable_name

Primește "denumirea apelabilă". În exemplul de mai jos aceasta este "someClass::someMethod". Observați însă că în ciuda faptului că someClass::SomeMethod() este o metodă apelabilă static, acesta nu este cazul.

Valorile întoarse

Întoarce TRUE dacă var este apelabilă, FALSE în caz contrar.

Exemple

Example #1 Exemplu is_callable()

<?php
//  Cum de verificat o variabilă dacă ea poate fi apelată în calitate de
//  funcție

//
//  O variabilă simplă ce conține o funcție
//

function someFunction()
{
}

$functionVariable 'someFunction';

var_dump(is_callable($functionVariablefalse$callable_name));  // bool(true)

echo $callable_name"\n";  // someFunction

//
//  Tablou conținând o metodă
//

class someClass {

  function 
someMethod()
  {
  }

}

$anObject = new someClass();

$methodVariable = array($anObject'someMethod');

var_dump(is_callable($methodVariabletrue$callable_name));  //  bool(true)

echo $callable_name"\n";  //  someClass::someMethod

?>

Example #2 is_callable() și constructori

Începând cu PHP 5.3.0 is_callable() raportează constructorii ca nefiind apelabili. Aceasta afectează constructorii de stil PHP 5 (__construct), precum și constructorii de stil PHP 4 (de ex. metode cu aceeași denumire ca și clasa). Anterior ambele cazuri erau considerate apelabile.

<?php

class Foo
{
    public function 
__construct() {}
    public function 
foo() {}
}

var_dump(
    
is_callable(array('Foo''__construct')),
    
is_callable(array('Foo''foo'))
);

Exemplul de mai sus va afișa:

bool(false)
bool(false)

A se vedea și