Forum und email

is_callable

(PHP 4 >= 4.0.6, PHP 5)

is_callable — Détermine si l'argument peut être appelé comme fonction

Description

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

Vérifie qu'une variable peut être appelée comme fonction. Cette fonction peut vérifier qu'une variable contient un nom de fonction valide, ou bien qu'elle contient un tableau, avec un objet et un nom de méthode.

Liste de paramètres

var

Peut être le nom d'une fonction stockée dans une variable de chaîne, ou un objet, et un nom de méthode pour cet objet, sous la forme :

array($unObjet, 'NomDeMethode' )

syntax_only

Si l'argument syntax_only vaut TRUE, la fonction ne va vérifier que si var peut être une fonction ou une méthode. Il va simplement rejeter les variables qui ne sont pas des chaînes, ou des tableaux qui n'ont pas la bonne structure pour être utilisés comme fonction de rappel. Les tableaux valides sont supposés n'avoir que deux entrées, le premier étant un objet ou une chaîne, et le second une chaîne.

callable_name

L'argument callable_name reçoit le nom à utiliser. Dans l'exemple ci-dessous, il vaut "uneClasse:uneMethode". Notez que, bien que uneClasse:uneMethode() puisse être appelée sous forme statique, ce n'est pas le cas.

Valeurs de retour

Retourne TRUE si var peut être appelé comme une fonction, FALSE sinon.

Exemples

Example#1 Exemple avec is_callable()

<?php
//  Comment vérifier qu'une variable peut être appelée 
//  comme fonction ?

//
//  Variable simple contenant une fonction
//

function someFunction() 
{
}

$functionVariable 'someFunction';

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

echo $callable_name"\n";  // uneFonction

//
//  Tableau contenant une méthode
//

class someClass {

  function 
someMethod() 
  {
  }

}

$anObject = new someClass();

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

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

echo $callable_name"\n";  //  uneClasse:uneMethode

?>