array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.is-callable.php', 1 => 'is_callable', ), 'up' => array ( 0 => 'ref.var.php', 1 => 'Funções para Manipulação de variáveis', ), 'prev' => array ( 0 => 'function.is-bool.php', 1 => 'is_bool', ), 'next' => array ( 0 => 'function.is-countable.php', 1 => 'is_countable', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/var/functions/is-callable.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
is_callable — Verifica se um valor pode ser chamado como uma função a partir do escopo atual.
Verifica se um valor é do tipo callable.
value
O valor a ser verificado
syntax_only
Se definido para true
a função apenas verifica se
value
pode ser uma função o método. Ela irá apenas
rejeitar variáveis simples que não sejam strings, ou um array que não
tem estrutura válida para ser usado como função de chamada de retorno. Os válidos
devem ter apenas 2 entradas, a primeira delas é um objeto
ou uma string, e a segunda uma string.
callable_name
Recebe o "nome da função chamável". No exemplo abaixo é "someClass::someMethod". Note, entretando, que embora a implicação de que someClass::SomeMethod() seja um método estático que pode ser chamado, este não é o caso.
Exemplo #1 Exemplo de is_callable()
<?php
// Como verificar uma variável para ver se ela pode ser chamada
// como uma função.
//
// Variável simples contendo uma função
//
function someFunction()
{
}
$functionVariable = 'someFunction';
var_dump(is_callable($functionVariable, false, $callable_name)); // bool(true)
echo $callable_name, "\n"; // someFunction
//
// Array contendo um método
//
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
?>
Exemplo #2 Exemplo de is_callable() e contrutores
is_callable() reporta construtores como métodos que não podem ser chamados.
<?php
class Foo
{
public function __construct() {}
public function foo() {}
}
var_dump(
is_callable(array('Foo', '__construct')),
is_callable(array('Foo', 'foo'))
);
O exemplo acima produzirá:
bool(false) bool(false)
true
para qualquer método neste objeto, mesmo se o método não estiver definido.