本文整理汇总了PHP中Support::classMethod方法的典型用法代码示例。如果您正苦于以下问题:PHP Support::classMethod方法的具体用法?PHP Support::classMethod怎么用?PHP Support::classMethod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Support
的用法示例。
在下文中一共展示了Support::classMethod方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __call
public function __call($method, $parameters)
{
if (!defined('static::factory')) {
throw new UndefinedConstException('[const factory] is required to use the [Call Factory Method Ability]!');
}
$originMethodName = $method;
$method = strtolower($method);
$calledClass = get_called_class();
if (!isset(static::factory['methods'][$method])) {
Support::classMethod($calledClass, $originMethodName);
}
$class = static::factory['methods'][$method];
$factory = static::factory['class'] ?? NULL;
if ($factory !== NULL) {
return $factory::class($class)->{$method}(...$parameters);
} else {
$classEx = explode('::', $class);
$class = $classEx[0] ?? NULL;
$method = $classEx[1] ?? NULL;
$isThis = NULL;
if (stristr($method, ':this')) {
$method = str_replace(':this', NULL, $method);
$isThis = 'this';
}
$namespace = str_ireplace(divide($calledClass, '\\', -1), NULL, $calledClass);
$return = uselib($namespace . $class)->{$method}(...$parameters);
if ($isThis === 'this') {
return $this;
}
return $return;
}
}