Sam*_*ams 6 php phpdoc phpstorm
我正在使用PHPStorm并编写了一个使用SimpleXML类的类.一切都很好,除非我遍历XML字符串,我将得到"Undefined Property"警告.
$xml = simplexml_load_string($string); //Returns SimpleXML Element
echo $xml->childElement; //PHPStorm reports "Undefined Property
Run Code Online (Sandbox Code Playgroud)
我相信这是因为PHPStorm中没有正确定义魔术属性.有人知道一个很好的小工作吗?这让我感到很恼火,因为我对于拥有漂亮干净的代码(和IDE)并且在课堂上出现警告非常可怕!
hak*_*kre 10
到目前为止,我还没有找到解决办法,只是创建一个具有相关属性的类型并且var-type-hinting变量:
class myXmlStoredValueObject {
/* @var string */
public $childElement;
}
$xml = simplexml_load_string($string); //Returns SimpleXML Element
/* @var $xml myXmlStoredValueObject */
echo $xml->childElement;
Run Code Online (Sandbox Code Playgroud)
当然,这并不总是适用/可行的,有一个作弊stdClass:
$xml = simplexml_load_string($string); //Returns SimpleXML Element
/* @var $xml stdClass */
echo $xml->childElement;
Run Code Online (Sandbox Code Playgroud)
您不需要声明任何具体类型以使提示消失.
还有其他一些不足之处,您仍然会遇到问题,foreach例如,您需要再次使用var-type-hint.
我想我已经解决了.如果我将花括号内的节点封装为字符串,PHPStorm将忽略这些.
echo $xml->{'Parent'}->{'ChildElement'};
Run Code Online (Sandbox Code Playgroud)
例如,如果您遇到带有连字符的XML标记,则这具有一致性的优点. $xml->{'Parent-Node'}
| 归档时间: |
|
| 查看次数: |
6267 次 |
| 最近记录: |