如何在另一个方法中访问变量?

时间:2014-03-05 18:43:59

标签: php symfony doctrine-orm

如何从另一个Setter中访问Setter中的变量集?尝试过只使用$ unit但我得到$ unit not defined错误。我的问题是我应该尝试在其他地方而不是在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;
}

我正在使用symfony2.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');

并且size变量正在工作......我真的不明白为什么这些措施没有按原样发送?

2 个答案:

答案 0 :(得分:0)

删除
$unit = <- I wish this to be what it is set as in "public function setUnit($unit)

请在下面的行中使用:
$this->size = new Mass($size, $this->unit);

答案 1 :(得分:0)

将单位作为全局变量。我不知道交响乐语法(我是php dev)但它可能是 在类内部声明public / private或protected变量。然后从该类中的任何函数访问。