我可以使用带stream_wrapper_register的名称空间类吗



我有一个类VarStream,我想像一样注册它

stream_wrapper_register('var', 'VarStream');

我们的课程总是以名称命名,所以我尝试过

stream_wrapper_register('var', 'OurSpaceVarStream');

运气不佳。

注册流包装器时可以使用名称空间吗?

可以。您需要提供流包装类的FQCN(完全限定类名)。

你可能会认为在你提供的代码中你已经有了:

stream_wrapper_register('var', 'OurSpaceVarStream');

但事实并非如此,因为FQCN从不以反斜杠""开头。

相反,使用(仅)该类的类名:

stream_wrapper_register('var', 'OurSpaceVarStream');

通常不需要前导反斜杠。甚至在这种情况下,它也会妨碍正确使用。它不是(完全限定的)类名的部分。当您将类名作为字符串参数传递时,通常都是这种情况。

我使用::class解决了这样的问题,

允许在编译时进行完全限定的类名解析

例如,

stream_wrapper_register("stream", self::class)

所以你不必自己考虑(背部)斜线;]

相关内容

  • 没有找到相关文章

最新更新