is_callable
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
is_callable — Prüft ob der Inhalt einer Variable als Funktion aufgerufen werden kann
Beschreibung
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 codierter Objekt- und Funktionsname enthalten ist.
Parameter-Liste
-
var -
Kann entweder der Name einer Funktion als String oder ein Objekt und der Name einer seiner Methoden als Array in der Form
array($SomeObject, 'MethodName')sein. -
syntax_only -
Wenn dieser Parameter auf
TRUEgesetzt wird, so prüft die Funktion nur obvarmö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 obige Beispiel ist dies "someClass::someMethod". Beachten Sie, dass dies keine statische Methode ist, auch wenn die Syntax das nahelegt.
Rückgabewerte
Liefet TRUE wenn var aufrufbar is,
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($functionVariable, false, $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($methodVariable, true, $callable_name)); // bool(true)
echo $callable_name, "\n"; // someClass::someMethod
?>
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