我有一个stdClass的实例。它的每个属性都是另一个类的实例,我该如何输入?
作为参考,如果它是一个数组,我可以使用
/**
* @var Other\Class[]
*/
protected $holder;
然后我会得到$mainobj->holder['elem']
的类型提示。如何用对象做到这一点?
我试过了:
/**
* @var Other\Class{}
*/
没有运气。
答案 0 :(得分:1)
你不能,而且我认为任何IDE都不可能实现这样做的方法,因为具有未知属性的对象,所有类型都相同,并不是非常" OOP喜欢"
它确实是实例的键值列表,但我更喜欢使用stdClass而不是数组 - 它更漂亮,并且它不需要我使用单引号来访问元素,这主要是为什么我这样做。我只需要弄清楚如何输入提示..
这意味着,您必须在键入少量字符或具有类型提示之间进行选择。关联数组是PHP中键值映射的完美结构。
答案 1 :(得分:0)
在PhpStorm我使用:
/** @var Other\Class $variableName */
对于类属性,我忽略了$variableName
。