我可能问得不好,所以我举个例子。我有一个与此类似的类(class):
class myclass {
var $template = array();
var $record = array();
function __construct($template,$record) {
$this->template = ( set = to a database response here );
$this->record = ( set = to a database response here );
}
我的问题是,当使用这个对象时,模板应该始终是相同的,并且记录是对象的每个实例的变化。有没有办法将 $template 的值转移到每个新实例?类似的东西
$a = new myclass(1,500);
$b = new myClass(2);
其中 b 具有创建 $a 时已生成的 $this->template
值。也许我完全是从错误的角度来看待这个问题的。任何建议表示赞赏。
最佳答案
是的。 Declaring it static将使它成为一个类属性
class Counter {
public static $total = 0;
public function increment()
{
self::$total++;
}
}
echo Counter::$total; // 0;
$a = new Counter;
$a->increment();
echo $a::$total; // 1;
$b = new Counter;
echo $b::$total; // 1;
注意:我使用 $a 和 $b 来访问静态属性,以说明该属性同时适用于两个实例。此外,这样做仅适用于 5.3 及以上版本。在此之前,您必须执行 Counter::$total。
关于php - 有没有办法设置一个类变量以应用于 php 中该类的所有实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2379832/