在调试器的 PhpStorm 视图中,属性名称中的星号是什么意思?

What do asterisks in properties' names mean in the debugger's view of PhpStorm?

我的代码有问题,当我将上一个工作恢复与当前工作恢复进行比较时,我发现 PhpStorm 调试输出中存在以下差异:

工作版本

object = {MyNamespace\DataObject\ProtocolSetForProtocolServer} [3]
 *MyNamespace\DataObject\ProtocolSet*id = null
 *MyNamespace\DataObject\ProtocolSet*endpoint = null
 *MyNamespace\DataObject\ProtocolSet*protocols = {Doctrine\Common\Collections\ArrayCollection} [1]

无效版本

object = {MyNamespace\DataObject\ProtocolSetForProtocolServer} [3]
 id = null
 endpoint = null
 protocols = {Doctrine\Common\Collections\ArrayCollection} [1]

在 PhpStorm 的调试输出中 *MyType*myPropertymyProperty 有什么区别?

刚带着同样的问题来到这里,发现了你的...

经过一些调查,我相信那些标记了 class 实例的私有属性。

以 Symfony 中修改后的 class 为例:

namespace Symfony\Component\EventDispatcher;

class EventDispatcher implements EventDispatcherInterface
{
    private $listeners = array();
    private $sorted = array();
    public $foo = array();
    protected $bar = array();
}

调试和查看 $this 的属性时,它将包含以下内容:

*Symfony\Component\EventDispatcher\EventDispatcher*sorted
*Symfony\Component\EventDispatcher\EventDispatcher*listeners
foo
bar