php - 是否可以在特征中输入提示 $this?
问题描述
我有一个特点,想输入提示 $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 中实现接口(请参阅为什么 PHP 特征不能实现接口?)。
感谢您的任何帮助 ;-)
解决方案
没有警告,因为您欺骗了 IDE 参数已正确传递。实际上,运行时它总是抛出错误。
Trait 是为 PHP 中的任何类注入的大量相关函数。它的目的是不用于 OOP。我认为这将有助于实用程序支持功能。
推荐阅读
- amazon-web-services - 具有预处理功能的多模型推理 AWS Sagemaker
- wpf - ViewModelLocator 没有启动
- typescript - 打字稿的引导程序(电子)
- javascript - 无法在 React Native Paper 中更改卡片标题文本的颜色
- reactjs - 如何在柏树的表格材料 ui 中检查 id 的范围?
- ansible - Ansible 任务 YAML 定义的元数据或标签
- javascript - 试图将三个 HTML 页面中的三个数据表合并为一页
- jquery - 滑块根据滑块项类名称滚动
- angularjs - AngularJs md-grid-tile 在另一个 md-grid-tile 后面
- ios - Swift Xcode TableViewCell 没有第一次加载