【发布时间】:2016-11-27 17:37:15
【问题描述】:
假设我们有一个这样的类:
class X {
public static function create ($a, $b) {
$x = new X();
$x->$a = $b;
return $x;
}
}
create() 动态分配成员。但是,此成员是公开的:
>>> X::create("name", "Robert")
=> X {#93
+"name": "Robert",
}
>>> $x->name
=> "Robert"
有没有办法让这个成员拥有受保护的或私人的可见性?
(在我的用例中,成员在上面的例子中稍后指定,因此,在顶部声明 protected $some_var; 将无济于事。)
【问题讨论】:
-
你不能。解释你为什么要这样做(即你在做什么,而不是你试图解决问题的方式)可能会指向不同的解决方案。