clockwerk-www – Blame information for rev
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
5 | vero | 1 | <?php |
2 | /** |
||
3 | * Replace function is_callable() |
||
4 | * |
||
5 | * @category PHP |
||
6 | * @package PHP_Compat |
||
7 | * @link http://php.net/function.is_callable |
||
8 | * @author Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it> |
||
9 | * @version $Id: is_callable.php 2 2009-03-16 20:22:51Z ggiunta $ |
||
10 | * @since PHP 4.0.6 |
||
11 | * @require PHP 4.0.0 (true, false, etc...) |
||
12 | * @todo add the 3rd parameter syntax... |
||
13 | */ |
||
14 | if (!function_exists('is_callable')) { |
||
15 | function is_callable($var, $syntax_only=false) |
||
16 | { |
||
17 | if ($syntax_only) |
||
18 | { |
||
19 | /* from The Manual: |
||
20 | * If the syntax_only argument is TRUE the function only verifies |
||
21 | * that var might be a function or method. It will only reject simple |
||
22 | * variables that are not strings, or an array that does not have a |
||
23 | * valid structure to be used as a callback. The valid ones are |
||
24 | * supposed to have only 2 entries, the first of which is an object |
||
25 | * or a string, and the second a string |
||
26 | */ |
||
27 | return (is_string($var) || (is_array($var) && count($var) == 2 && is_string(end($var)) && (is_string(reset($var)) || is_object(reset($var))))); |
||
28 | } |
||
29 | else |
||
30 | { |
||
31 | if (is_string($var)) |
||
32 | { |
||
33 | return function_exists($var); |
||
34 | } |
||
35 | else if (is_array($var) && count($var) == 2 && is_string($method = end($var))) |
||
36 | { |
||
37 | $obj = reset($var); |
||
38 | if (is_string($obj)) |
||
39 | { |
||
40 | $methods = get_class_methods($obj); |
||
41 | return (bool)(is_array($methods) && in_array(strtolower($method), $methods)); |
||
42 | } |
||
43 | else if (is_object($obj)) |
||
44 | { |
||
45 | return method_exists($obj, $method); |
||
46 | } |
||
47 | } |
||
48 | return false; |
||
49 | } |
||
50 | } |
||
51 | } |
||
52 | |||
53 | ?> |