为什么函数在$ this->上返回0

时间:2016-09-29 14:32:29

标签: php

我不明白为什么我的函数getDisplayProductsNewPriceDiscountByQuantity返回0然后$new_discount_price返回类似600的价格

  public function getProductsNewPriceByDiscountByQuantity($id, $qty, $products_price) {
....
      for ($i; $i > 0; $i--) {
        if($qty > $discount_quantity[$i]) {
          $new_discount_price  = ($products_price - ($products_price * ($discount_customer[$i] / 100))) * $qty;

          $this->displayDiscountPrice = $new_discount_price;
          break;
        }
      }

      return $new_discount_price; 
    }


    public function getDisplayProductsNewPriceDiscountByQuantity() {
      print_r('-------' . $this->displayDiscountPrice);
      return $this->displayDiscountPrice;
    }

2 个答案:

答案 0 :(得分:0)

不确定您的目的是什么,但2个功能的名称略有不同,$this->displayDiscountPrice仅设置在前一个getProductsNewPriceByDiscountByQuantity。因此,如果您先调用getDisplayProductsNewPriceDiscountByQuantity而不先调用其他函数,$this->displayDiscountPrice将为0

答案 1 :(得分:0)

一个强烈推荐的要审查的主题是一般的变量范围。 在深入研究OOP和属性范围之前,这是一个很好的主题。

Reference: What is variable scope, which variables are accessible from where and what are “undefined variable” errors?