(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
is_callable — Prüft, ob ein Wert als Funktion aus dem aktuellen Bereich aufgerufen werden kann.
Prüft, ob ein Wert ein callable ist.
value
Der zu prüfende Wert.
syntax_only
Wenn dieser Parameter auf true
gesetzt wird, prüft die Funktion nur,
ob value
eine Funktion oder Methode
enthalten könnte. Nur einfache Variablen, die keinen String enthalten,
werden zurückgewiesen, oder Arrays, die nicht die richtige Struktur
haben, um als Callback verwendet werden zu können. Gültige Arrays
müssen zwei Elemente haben, 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.
Beispiel #1 is_callable()-Beispiel
<?php
// Wie man prüft, ob eine Variable als Funktion aufgerufen werden kann
//
// Eine einfache Variable, die eine Funktion enthält
//
function someFunction()
{
}
$functionVariable = 'someFunction';
var_dump(is_callable($functionVariable, false, $callable_name)); // bool(true)
echo $callable_name, "\n"; // someFunction
//
// Ein Array, das eine Methode enthält
//
class someClass {
function someMethod()
{
}
}
$anObject = new someClass();
$methodVariable = array($anObject, 'someMethod');
var_dump(is_callable($methodVariable, true, $callable_name)); // bool(true)
echo $callable_name, "\n"; // someClass::someMethod
?>
Beispiel #2 is_callable() und Konstruktoren
is_callable() meldet Konstruktoren als nicht aufrufbar.
<?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)
true
zurückgeben, auch wenn die Methode nicht definiert ist.