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

aut*_*tix 2 debugging phpstorm phpstorm-2017.2

我的代码有问题,当我将上一个工作版本与当前版本进行比较时,我发现 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]
Run Code Online (Sandbox Code Playgroud)

不工作版本

object = {MyNamespace\DataObject\ProtocolSetForProtocolServer} [3]
 id = null
 endpoint = null
 protocols = {Doctrine\Common\Collections\ArrayCollection} [1]
Run Code Online (Sandbox Code Playgroud)

PhpStorm 的调试输出中*MyType*myProperty和刚刚有什么区别?myProperty

chr*_*Brd 5

带着同样的问题来到这里,找到了你的问题......

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

使用 Symfony 的修改类作为示例:

namespace Symfony\Component\EventDispatcher;

class EventDispatcher implements EventDispatcherInterface
{
    private $listeners = array();
    private $sorted = array();
    public $foo = array();
    protected $bar = array();
}
Run Code Online (Sandbox Code Playgroud)

调试并查看其属性时$this将包含以下内容:

*Symfony\Component\EventDispatcher\EventDispatcher*sorted
*Symfony\Component\EventDispatcher\EventDispatcher*listeners
foo
bar
Run Code Online (Sandbox Code Playgroud)