考虑以下代码:
class Manager{
function a(){
$var1 = 10;
$var2 = 20;
var_dump($var1 * $var2);
echo "<br> var1=" . $var1 . "<br>";
echo "var2=" . $var2;
}
}
class Sub extends Manager{
function a(){
$var1 = 20;
parent::a();
}
}
$s = new Sub();
$s->a();
在这里,我试图覆盖$var1
fromSub::a()
然后调用其父函数的值Manager::a()
,希望 php 将$var1=20
结果设置和显示为400
(20 x 20)。但这似乎不起作用。$var1
仍等于10
。
想知道是否有办法部分覆盖 php 中可以覆盖函数局部变量的函数?特别是在这段代码中,我怎样才能摆脱400
, 而不是 current 200
?
[编辑]
这Sub
只是一个例子,我将有多个子类,如Sub1
, Sub2
, Sub3
& 等等。因此每个子类都会尝试为 设置不同的值$value1
,如下所示:
class Sub1 extends Manager{
function a(){
$var1 = 20;
parent::a();
}
}
class Sub2 extends Manager{
function a(){
$var1 = 99;
parent::a();
}
}
class Sub3 extends Manager{
function a(){
$var1 = 50;
parent::a();
}
}