/usr/share/php/PHP/Compat/Function/is_callable.php is in php-compat 1.6.0a3-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | <?php
/**
* Replace function is_callable()
*
* @category PHP
* @package PHP_Compat
* @license LGPL - http://www.gnu.org/licenses/lgpl.html
* @copyright 2004-2007 Aidan Lister <aidan@php.net>, Arpad Ray <arpad@php.net>
* @link http://php.net/function.is_callable
* @author Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
* @author Arpad Ray <arpad@php.net>
* @version $Revision: 269597 $
* @since PHP 4.0.6
* @require PHP 4.0.0 (true, false, etc...)
* @todo add the 3rd parameter syntax...
*/
function php_compat_is_callable($var, $syntax_only = false)
{
if (!is_string($var)
&& !(is_array($var)
&& count($var) == 2
&& isset($var[0], $var[1])
&& is_string($var[1])
&& (is_string($var[0])
||
is_object($var[0])
)
)
) {
return false;
}
if ($syntax_only) {
return true;
}
if (is_string($var)) {
return function_exists($var);
} else if (is_array($var)) {
if (is_string($var[0])) {
$methods = get_class_methods($var[0]);
$method = strtolower($var[1]);
if ($methods) {
foreach ($methods as $classMethod) {
if (strtolower($classMethod) == $method) {
return true;
}
}
}
} else {
return method_exists($var[0], $var[1]);
}
}
return false;
}
// Define
if (!function_exists('is_callable')) {
function is_callable($var, $syntax_only)
{
return php_compat_is_callable($var, $syntax_only);
}
}
|