is_callable

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

is_callablePrüft ob der Inhalt einer Variable als Funktion aufgerufen werden kann

Beschreibung

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

Prüft ob der Inhalt einer Variable als Funktion aufgerufen werden kann. Es wird geprüft, ob eine einfache Variable den Namen einer gültigen Funktion enthält, oder ob in einem Array ein gültig kodierter Objekt- und Funktionsname enthalten ist.

Parameter-Liste

var

Der zu prüfende Wert.

syntax_only

Wenn dieser Parameter auf TRUE gesetzt wird, so prüft die Funktion nur ob var möglicherweise eine Funktion oder Methode enthält. Einfache Variablen werden nur zurückgewiesen, wenn sie keinen String enthalten. Arrays werden auf die richtige Struktur geprüft, d.g. dass das Array zwei Elemente hat von denen der erste ein Objekt oder String und der zweite ein String ist.

callable_name

Hier wird der "aufrufbare Name" abgelegt. Für das Beispiel weiter unten ist dies "someClass::someMethod". Es ist zu beachten, dass dies keine statische Methode ist, auch wenn die Syntax das nahelegt.

Rückgabewerte

Liefet TRUE, wenn var aufrufbar ist, sonst FALSE.

Beispiele

Beispiel #1 is_callable() Beispiel

<?php
// Wie man prüft ob eine Variable als Funktion aufgerufen werden kann

//
//  Einfache Variable die eine Funktion enthält
//

function someFunction() 
{
}

$functionVariable 'someFunction';

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

echo $callable_name"\n";  // someFunction

//
//  Array das eine Methode enthält
//

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

?>

Beispiel #2 is_callable() and constructors

Von PHP 5.3.0 an meldet is_callable() Konstruktoren als nicht aufrufbar. Dies betrifft Konstruktoren im PHP 5 Stil (__construct) wie auch Konstruktoren im PHP 4 Stil (d.h. Methoden mit demselben Namen wie die Klasse). Zuvor wurden beide Fälle als aufrufbar angesehen.

<?php

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

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)

Siehe auch

  • function_exists() - Falls die angegebene Funktion definiert ist, wird TRUE zurück gegeben
  • method_exists() - Prüft ob eine Methode innerhalb eines Objekts existiert