是否可以在特征中输入提示 $this?
Posted
技术标签:
【中文标题】是否可以在特征中输入提示 $this?【英文标题】:Is it possible to type hint $this in traits? 【发布时间】:2020-08-16 18:49:11 【问题描述】:我有一个特征,想输入提示 $this 来告知编译器它的类型:
trait MyTrait
public function myAwesomeFunction()
return new OtherClass($this); // warning: Expected MyAwesomeInterface, got MyTrait
class OtherClass
public function __construct(MyAwesomeInterface $foo) ...
所以我想知道是否有类似的东西,例如:
trait MyTrait
public function myAwesomeFunction()
/**
* @var $this MyAwesomeInterface
*/
return new OtherClass($this); // no warnings
这将允许我通知编译器该特征的用户实现了我的接口。
请注意,特征不能在 php 中实现接口(请参阅Why PHP Trait can't implement interfaces?)。
感谢您的帮助 ;-)
【问题讨论】:
【参考方案1】:没有警告,因为您作弊 IDE 参数已正确传递。实际上,运行时总是抛出错误。
Trait 是为 PHP 中的任何类注入的大量相关函数。它的目的是不用于 OOP。我认为这将有助于实用程序支持功能。
【讨论】:
以上是关于是否可以在特征中输入提示 $this?的主要内容,如果未能解决你的问题,请参考以下文章