php - 定义具有特定类型的静态 php 类变量
问题描述
在没有深入杂草的情况下,我正在寻找一种将类型分配给静态 php 类变量的方法,主要是为了让 php intelephense 在某个用例中工作。
class ExampleClass {
public static $variable;
public static function sampleFunction1(){
self::$variable = Utils::init();
self::$variable->getAddress(); // <--Intelephense works
}
public static function sampleFunction2(){
self::$variable->getAddress(); // <--Intelephense doesn't work
}
}
class Utils {
/**
* Initializes SampleClass
*
* @return SampleInterface
*/
public static function init() {
return new SampleClass();
}
}
interface SampleInterface {
public function getAddress();
}
class SampleClass implements SampleInterface{
public function __construct() { }
public function getAddress(){
}
}
在其他严格的语言中,您可以强制转换或将其专门定义为 SampleInterface 的类型。这可能只是 php 的限制,或者我可能会以错误的方式解决这个问题,感谢任何帮助!:)
- 更新 -
我在 ExampleClass 中添加了 getter 和 setter 来解决问题。
/**
* @return SampleInterface
*/
public static function getVariable() : ?SampleInterface{
return self::$variable;
}
/**
* @param SampleInterface $variable
*/
public static function setVariable(SampleInterface $variable) {
self::$variable = $variable;
}
解决方案
推荐阅读
- java - springfox ApiModelProperty 位置排序不起作用
- c++ - 我不明白的函数声明
- r - 使用 map 函数进行子集化
- shiny - 绑定数据的闪亮应用只保存一个名字
- react-native-popup-menu - 使用 react-native-popup-menu 实现多级弹出窗口的理想方法是什么?
- micronaut - 如何使用 LogBack 记录客户端 IP 地址
- json - 如何在 Laravel Eloquent 中获取包含数组的 JSON 对象的值?
- azure - 在 Azure 数据工厂中将固定宽度文件转换为分隔文件 - 映射数据流
- android - 如何在 Android 中获取 ML Kit 人脸检测处理帧
- python - 免费计划中的 Firebase 存储:要计费的项目与缺少的计费帐户相关联