为什么即使将其范围设置为私有,也可以print_r
看到私有属性$ version?
class myClass { private $version; public function set_version($value){ $this->version = $value; } } $class = new myClass(); $class->set_version("1.2"); echo ""; print_r($class);
Sᴀᴍ Onᴇᴌᴀ.. 7
print_r()显示私有成员属性以进行调试.它不应该用于输出对象以用于显示目的(例如在视图/页面中).要显示有关对象的信息,可能适合创建将返回适当信息的方法(例如toString).
print_r(),var_dump()和var_export()也将显示对象的受保护属性和私有属性.静态类成员将不会显示.1
1 http://php.net/manual/en/function.print-r.php#refsect1-function.print-r-description)
1> Sᴀᴍ Onᴇᴌᴀ..:print_r()显示私有成员属性以进行调试.它不应该用于输出对象以用于显示目的(例如在视图/页面中).要显示有关对象的信息,可能适合创建将返回适当信息的方法(例如toString).
print_r(),var_dump()和var_export()也将显示对象的受保护属性和私有属性.静态类成员将不会显示.1
1 http://php.net/manual/en/function.print-r.php#refsect1-function.print-r-description)