它用于SlimFramework。第一个参数是路由器模式,第二个参数应该是回调。我的老师给了我们一个位于Media
命名空间内的类cdApi
。我知道::class
返回一个完全限定的类名解析,然后它与我不明白的部分连接:":getOne"
。getOne
是一个函数,但我从未见过冒号这样使用,这是什么意思?
$app->get('/super', cdApi::class . ':getOne');
Slim 框架具有称为"容器解析"的路由功能,这就是您看到单个冒号时看到的内容。查看苗条文档:
https://www.slimframework.com/docs/objects/router.html
您不仅限于为路由定义函数。在苗条 有几种不同的方法可以定义路由操作函数。
除了功能之外,您还可以使用:
- container_key:方法
- 类:方法
- 可调用的类
- container_key
此功能由 Slim 的可调用解析器类启用。它 将字符串条目转换为函数调用。
他们的例子:
$app->get('/', 'HomeController:home');
双冒号是 PHP 中的静态方法访问
静态定义示例:
class Foo {
public static function aStaticMethod() {
return 'Hello World'
}
}
可以这样称呼:
$var = Foo::aStaticMethod()
在 PHP 中,静态属性 'class' 会自动分配给任何类 (见:http://php.net/manual/en/migration55.new-features.php#migration55.new-features.class-name(
例:
class Foo {}
print Foo::class //prints 'Foo'