php关于private、public成员变量访问问题
如果类里面定义了__get($name)方法,则不论类的private成员还是public成员,都能够在类的外面通过类似$class->name访问到。
如果是public变量,则不会自动调用get函数的代码。
如果是private变量,会自动调用get函数的代码。
如下例,由于访问的成员变量是private变量,因此底层会通过调用get方法获取该变量。
<?php class Page { private $param1 = "http://localhost:8080/"; function __get($name) { echo "get methor invokes<br>"; return $this->$name; } } $page = new Page(); echo 'param1='.$page->param1;
?>
该程序输出:
get methor invokes
param1=http://localhost:8080/
本文出自 无忧之路 - 博客园