PhpStorm是否可以自动完成未知属性? 以下是示例代码:
class Fields {
public function __construct($data) {
foreach ($data AS $d) {
$propName=$d['id'];
$this->$propName=$d['value'];
}
}
}
$data=[
['id'=>'myId', 'value'=>'Name'],
['id'=>'second', 'value'=>'Second]
];
$fields=new Fields($data);
$fields->second;//comes from autocpmplete
我想要第二个'或者' myId'要自动填充的财产。有可能吗?
答案 0 :(得分:2)
PhpStorm是否可以自动填充未知属性?
是和否 - 这取决于您打算如何使用它。
如果你想让它绝对动态(例如同一个Fields
类但在一个文件中$fields
变量(那个Fields
类的实例)将有一组字段并且在另一个完全不同的 - 然后回答是否。
否则,可以通过该类的PHPDoc评论中的 @property
标记(see detailed link)声明不存在的属性。
/**
* @property string $abc Optional description here
*/
class Fields {
...
现在Fields
的每个实例都会在完成时提供abc
属性。
考虑到这一点,你可以在Fields
类中拥有所有实际的代码/逻辑,然后在子类中声明特定的字段:
/**
* @property string $first
*/
class FirstClassFields extends Fields {
...
}
/**
* @property string $second
*/
class SecondClassFields extends Fields {
...
}