返回类中函数的值

时间:2014-12-29 09:40:07

标签: php yii

我有一个班级做一些简单的计算。

class CalculatorsController extends Controller {

   public function actionroadTaxCalculator() {
           // form inputs are valid, do something here
            $cc = $this->rem_commas(trim($_calc['cc']));
            $sOptions = trim($_calc['fuel']);
            $location = trim($_calc['location']);
            $use = trim($_calc['use']);

           $this->roadtaxCalculation(array('cc' => $cc, 'fuel' => $sOptions, 'location' => $location, 'use' => $use), true);
  }
   /*
     * Where all the roadtax calculation happens
     * 
     */
     public static function roadtaxCalculation($arr, $isAjax = true) {
               $roadtax = ($sOptions == "petrol") ? 55 : 55;
               CalculatorsController::fuel($roadtax, $isAjax);
      }



   /*
     * function to format and echo road tax
     */ 
    public function fuel($RoadTax, $isAjax = true)
    {
        $RoadTax = number_format(round($RoadTax, 2), 2);
        //TODO: add list of cars matching CC
        $matches = '';

        if (!empty($isAjax))
        {
            echo CJSON::encode(array(
                                    'rtax'=> $RoadTax,
                                    'matches'=> $matches,
                      ));

            Yii::app()->end();
        }
        else
        {
            return $RoadTax;
        }
     }
}

roadtaxCalculation()函数已简化为此问题,但基本上它会调用fuel()以便稍后返回计算。它不会,但当我echo它确实有效。

1 个答案:

答案 0 :(得分:0)

当您将方法定义为静态时(就像使用roadtaxCalculation一样),您不能使用$this。静态方法不绑定到类CalculatorsController的任何实例。换句话说,您可以在没有对象的情况下使用它,这就是您无法使用$this的原因。还有哪些fuel必须是静态的。

您在return中有else声明,因此如果您看到回复的文字else将无法执行。