Rechercher une fonction PHP

is_callable

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

is_callableDétermine si l'argument peut être appelé comme fonction

Description

bool is_callable ( mixed $var [, bool $syntax_only = false [, 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

La valeur à vérifier.

syntax_only

Si l'argument syntax_only vaut TRUE, la fonction ne va vérifier que si name 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 "someClass::someMethod". Notez que, bien que someClass::someMethod() 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

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 someFunction()
{
}

$functionVariable 'someFunction';

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

echo $callable_name"\n";  // someFunction

//
//  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";  //  someClass::someMethod

?>

Exemple #2 is_callable() et les constructeurs

Depuis PHP 5.3.0, is_callable() vérifie si un constructeur est appelable ou non. Ceci affecte les constructeurs style PHP 5 (__construct) mais aussi les constructeurs style PHP 4 (i.e. méthodes avec le même nom que la classe). Auparavant, les deux étaient considérés comme appelable.

<?php

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

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

L'exemple ci-dessus va afficher :

bool(false)
bool(false)

  

Voir aussi

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.is-callable.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut