为什么print_r和var_dump显示私有成员值?

时间:2017-11-04 04:43:34

标签: php

运行var_dump($ object)或print_r($ object)时,将显示私有成员的所有值。

示例代码:

class Test
{
    private $var1 = 'not to be accessed outside class';
    private $var2 = 'me too';
    private $var3 = 'same here';

    public function somefunction()
    {
    // to do code
    }

}
$object = new Test;
print_r($object);

结果:

    Test Object ( [var1:Test:private] => not to be accessed outside class [var2:Test:private] => me too [var3:Test:private] => same here )

我尝试了PHP的不同版本的PHP(5.x,7.1),但结果相同。

这可能是个错误吗?

1 个答案:

答案 0 :(得分:0)

这不是一个错误,只是显示有关您提供的数据的结构化信息。显示私有财产并不意味着它可以从外面访问它们。它只是提供信息。

这是完全正常的。