此 PHP 语句中的单个冒号是什么意思?



它用于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'

相关内容

最新更新