stdClass 属性的类型提示?

Type-hinting for stdClass properties?

是否有一种标准方法可以对 stdClass 上存在的属性进行类型提示?

例如,我使用一些 API 并得到 JSON 响应。然后我用 json_decode 解析它,但我希望 IDE 知道这个 stdClass 对象有什么属性。

我试过这样做:

$obj = json_decode($jsonResponse);
/** @var $obj \stdClass */
/** @property String $obj->prop */

但 PhpStorm 仍然无法识别 $obj 具有 属性 prop.

有没有办法让这个工作?

您可以创建一个 class 来继承 stdClass 并描述属性。响应对象可能会转换为它。例如:

/**
 * @property string $prop
 */
class SomeClass extends stdClass
{
}

$obj = json_decode($jsonResponse);
$obj = (SomeClass)$obj;