【发布时间】:2012-08-21 05:31:16
【问题描述】:
我有一个这样的类结构:
class general {
private $var;
function set_val( $val ) {
$this->var = $val;
}
function get_val() {
return $this->var;
}
}
class A extends general {
function __construct( $val ) {
parent::set_val( $val );
}
....
}
class B extends general {
....
}
对应的主脚本是这样的:
<?php
$a = new A( "Apple" );
$b = new B();
echo "A: " . $a->get_val();
echo "B: " . $b->get_val();
哪个输出:
A: Apple
B:
现在的问题是 A 和 B 的所有实例都访问它们自己的父类 general 的变量 $var ,因此所有 $var 都是相互独立的。
有没有一种方法可以在父类 general once 中设置变量 $var ,然后自动将其提供给 all classes,这些类是/extends general 的子类? (因此 $b->get_val() 也输出“Apple”?!)
背景:我想在通用类中加载具有语言相关值的变量。然后这些变量应该可供所有子类使用。
【问题讨论】: