PHP OOP - 可从外部 class 使用 var_dump 访问私有变量?

PHP OOP - private variable accessible from outside class with var_dump?

我有一个 class 用户有一个变量:private $uPass;

我刚刚注意到,在创建 User 的实例时,我 运行 在该实例上 var_dump 它只列出了所有私有变量? 有什么办法可以关闭它吗?

class User
{
    private $uId;
    private $uName;
    private $uPass;
    private $uPowers;

$teamMembers[$count] = new User();

foreach ($teamMembers as $teamMember)
{
    var_dump($teamMember);
}

然后输出显示所有内容,包括密码... 当然它们是加密的,但仍然不希望它们可以这样访问!?

解决这个问题的正确方法是什么?

它完全按照它说的去做:

All public, private and protected properties of objects will be returned in the output unless the object implements a __debugInfo() method (implemented in PHP 5.6.0).

因此您可以实施自定义 __debugInfo 方法,或者,别再担心了。如果有人可以访问您的源代码或对象的序列化副本,这只是一个安全风险,这两者都可能是更广泛的安全问题的迹象。