-\r
- $exists = false;\r
- if (is_string($funcname) && strpos($funcname, '::') !== false)\r
- {\r
- $funcname = explode('::', $funcname);\r
- }\r
- if(is_array($funcname))\r
- {\r
- if(count($funcname) < 2 || (!is_string($funcname[0]) && !is_object($funcname[0])))\r
- {\r
- error_log('XML-RPC: syntax for function to be wrapped is wrong');\r
- return false;\r
- }\r
- if(is_string($funcname[0]))\r
- {\r
- $plainfuncname = implode('::', $funcname);\r
- }\r
- elseif(is_object($funcname[0]))\r
- {\r
- $plainfuncname = get_class($funcname[0]) . '->' . $funcname[1];\r
- }\r
- $exists = method_exists($funcname[0], $funcname[1]);\r
- if (!$exists && version_compare(phpversion(), '5.1') < 0)\r
- {\r
- // workaround for php 5.0: static class methods are not seen by method_exists\r
- $exists = is_callable( $funcname );\r
- }\r
- }\r
- else\r
- {\r
- $plainfuncname = $funcname;\r
- $exists = function_exists($funcname);\r
- }\r