【发布时间】:2015-09-16 17:09:16
【问题描述】:
我正在尝试做这样的事情:
function doSomething($param, Class) {
Class::someFunction();
}
$someVar = doSomething($param, Class);
有可能吗?
为了更好地解释我正在尝试做的事情。我在 Laravel 中有一个辅助函数来生成唯一的 slug,所以我必须根据 slug 的保存位置来查询不同的表。
我正在尝试编写的实际代码:
$newcat->slug = $helper->uniqueSlug($appname, Apk);
public function uniqueSlug($str, Apk)
{
$slug = Str::slug($str);
$count = Apk::whereRaw("slug RLIKE '^{$slug}(-[0-9]+)?$'")->count();
return $count ? "{$slug}-{$count}" : $slug;
}
谢谢!
【问题讨论】:
-
将其作为字符串传递?
doSomething($param, 'PDO');然后$class::somefunction()? -
我并没有从你的例子中真正理解。能不能说的清楚一点?
-
您正在尝试动态调用静态方法,这基本上是一个设计缺陷。 @Marc B 的字符串建议是可能的,但更好的是使用实例方法和
function doSomething($param, MyBaseClass $instance) { $instance->someFunction(); } -
但是在您的示例中如何调用该函数?像这样的东西?
$instance = new MyBaseClass; doSomething($param, $instance)?
标签: php laravel laravel-5 laravel-5.1