也许有些人使用jpgraph来生成一些图表。我想从jpgraph-class(ErrorPlot)更改private属性($ errwidth)。在大多数情况下,jpgraph提供了一个设置所有nessesary属性的函数。但不是在这种情况下。
我的尝试:
class ErrorPlot extends Plot {
// Original class
private $errwidth=2;
...
}
class SpecialErrorPlot extends ErrorPlot {
// "Extension" to modify the attribute
function SetErrWidth( $w ){
$this->errwidth = $w;
}
}
$chart_obj = new SpecialErrorPlot( array(1,2,3,4,5,6) );
$chart_obj->SetErrWidth(10);
SpecialErrorPlot Object (
[errwidth:private] => 2
...
[errwidth] => 10
)
结果:2个属性!很难得到这两个属性,但我不明白为什么!?!?我希望你能帮助我!
Stefan
答案 0 :(得分:2)
你想要保护而不是私人。
受保护的函数和变量可以由子类修改,而私有函数和变量除了单独的类外,不能修改。
答案 1 :(得分:0)
你应该看一下反思 - setAccessible()