Manuel PHP
Précédent |  | Suivant

# 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]])

`is_callable` 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.

Le paramètre `var` peut être le nom d'une fonction stocké dans une variable de chaîen, ou un objet, et un nom de méthode pour cet objet, sous la forme :

    array( $unObjet, 'NomDeMethode' )

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é comme fonction de call back. Les tableaux valides sont supposés n'avoir que deux entrées, le premier étant un objet ou une chaîne, et de second une chaîne.

L'argument `callable_name` recoit le nom à utiliser ("callable name"). Dans l'exemple ci-dessous, il vaut `"uneClasse:uneMethode"`. Notez que, bien que `uneClasse:uneMethode()` puisse être appelé sous forme static, ce n'est pas le cas.

Exemple 1. Exemple avec is_callable()

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

    //
    //  Variable simple contenant une fonction
    //

    function uneFonction() {
    }

    $fonctionVariable = 'uneFonction';

    var_dump( is_callable( $fonctionVariable, false, $callable_name ));  // bool(true)

    echo $callable_name, "\n";  // uneFonction

    //
    //  Tableu contenant une méthode
    //

    class uneClasse {

      function uneMethode() {
      }

    }

    $unObjet = new uneClasse();

    $methodeVariable = array( $unObjet, 'uneMethode' );

    var_dump( is_callable( $methodeVariable, true, $callable_name ));  //  bool(true)

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

    ?>

Précédent | Sommaire | Suivant
is_bool | Niveau supérieur | is_double