Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php stdClass属性的类型提示?_Php_Phpstorm_Type Hinting - Fatal编程技术网

Php stdClass属性的类型提示?

Php stdClass属性的类型提示?,php,phpstorm,type-hinting,Php,Phpstorm,Type Hinting,是否有标准方法键入stdClass上存在的属性提示 例如,我使用一些API并得到一个JSON响应。然后我用json\u decode解析它,但我希望IDE知道这个stdClass对象有哪些属性 我试着这样做: $obj = json_decode($jsonResponse); /** @var $obj \stdClass */ /** @property String $obj->prop */ 但是PhpStorm仍然不承认$obj具有prop属性 还有什么方法可以让它工作吗?您可

是否有标准方法键入stdClass上存在的属性提示

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

我试着这样做:

$obj = json_decode($jsonResponse);
/** @var $obj \stdClass */
/** @property String $obj->prop */
但是PhpStorm仍然不承认
$obj
具有
prop
属性


还有什么方法可以让它工作吗?

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

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

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

/**@属性字符串$obj->prop*/
--它不是这样工作的。您有2个选项:1)只需使用您想要的任何字段,IDE不应警告您未知字段,因为它是一个
stdClass
实例。2) 仅为IDE创建一些伪类,并在typehint中使用它而不是
\stdClass
。最后一行实际上是一个分析错误,您不能强制转换为非基本类型。只需使用
/**@var SomeClass$obj*/
即可。