我正在使用 PHPStorm 并编写了一个使用 SimpleXML 类的类。一切都很好,除了当我遍历 XML 字符串时,我会收到“未定义属性”警告。
$xml = simplexml_load_string($string); //Returns SimpleXML Element
echo $xml->childElement; //PHPStorm reports "Undefined Property
我认为这是因为魔法属性在 PHPStorm 中没有正确定义。有人知道一个不错的小工作吗?这让我很恼火,因为我对拥有漂亮干净的代码(和 IDE)很迂腐,而且在类里面出现警告真是太糟糕了!
最佳答案
到目前为止,我还没有找到解决方法,只是创建了一个具有相关属性的类型,并对变量进行 var-type-hinting:
class myXmlStoredValueObject {
/* @var string */
public $childElement;
}
$xml = simplexml_load_string($string); //Returns SimpleXML Element
/* @var $xml myXmlStoredValueObject */
echo $xml->childElement;
自然这并不总是适用/可行,stdClass
有一个作弊:
$xml = simplexml_load_string($string); //Returns SimpleXML Element
/* @var $xml stdClass */
echo $xml->childElement;
您无需声明任何具体类型即可使提示消失。
还有其他缺陷,您仍然会遇到 foreach
的问题,例如,您需要再次进行 var-type-hint。
关于PHPStorm 和魔术方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9666019/