我有一个带有变量的用户类: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);
}
然后输出只显示一切,包括密码...... 当然,它们是加密的,但仍然不希望它们像这样被访问!?
解决这个问题的正确方法是什么?
答案 0 :(得分:1)
它完全按照它的说法行事:
除非对象实现__debugInfo()方法(在PHP 5.6.0中实现),否则将在输出中返回对象的所有公共,私有和受保护属性。
因此,您可以实施自定义__debugInfo
方法,或者只是停止担心它。如果有人可以访问您的源代码或对象的序列化副本,这只是一个安全风险,这两者都可能是更广泛安全问题的迹象。