如何从另一个Setter中访问Setter中的变量集?我试过只使用$unit,但我得到了一个$unit未定义的错误。我的问题是,我应该在其他地方而不是在setter方法中尝试这样做吗?我花了6个小时试图做到这一点,但我似乎无法理解。
初始变量$unit是从表单中设置的。
public function setUnit($unit)
{
$this->unit = $unit;
return $unit;
}
public function getUnit()
{
return $this->unit;
}
public function setSize($size)
{
$unit = <- I wish this to be what it is set as in "public function setUnit($unit)
$this->size = $size = new Mass($size, $unit);
$this->size = $size->toUnit('mg');
return $this;
}
我正在使用symfoy2.3.11
-编辑-
好的,所以我遵循了——的建议,这确实解决了我最初的问题。。。但是现在。我的表单正在构建:
->add('unit', 'choice', array(
'choices' => array(
'gram' => 'gram',
'kg' => 'Kg',
'mg' => 'Mg',
'oz' => 'Oz',
'lb' => 'Lb',
),
我希望它能将度量值发送到$unit变量,然后可以由newMass($unit)使用,但我现在收到
"未知计量单位($unit)">
我知道所有这些措施都是支持的,因为当我直接将它们输入到新的Mass中时($size,'mg');它运行良好。
创建者提供的原始代码如下所示:
$height = new Length(6.16, 'feet');
echo $height->toUnit('m');
大小变量正在起作用。。。我真的不明白为什么这些措施没有按原样发送?
删除$unit = <- I wish this to be what it is set as in "public function setUnit($unit)
在下面的行中使用:$this->size = new Mass($size, $this->unit);
将单位作为全局变量。我不知道symphony语法(我是php-dev),但它可能是在类中声明public/private或protected变量。然后从该类内的任何函数进行访问。