PHPStorm 和魔术方法

标签 php phpdoc phpstorm

我正在使用 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/

相关文章:

php - 从 200 个数字中随机选择 30 个数字

php - MySQL SELECT from array of ids 其中一个是强制性的

php - 如何使用 Selenium 2 驱动程序在 Mink 中设置页面加载超时?

php - 在 PHPDoc 中记录数组选项的最佳方式?

linux - 来自命令行的 Git 操作删除了 Windows 的 git 权限

php - 使用 Docker 在 PhpStorm 中配置代码嗅探器

PHP/MYSQL - 选择选项值未发送?

php - 使用 phpDocumentor 记录 PHP 常量(定义)的正确方法是什么

用于指定与参数类型相同的返回类型的 phpDoc 符号

PhpStorm - 如何在一个项目中 pull 多个 GIT 存储库