将函数值传递给同一类中的另一个函数


passing function values to another function in same class

我想将函数值传递给同一类中的另一个函数,例如将一些值存储在变量中,然后在同一类中的另一个函数中调用此变量。

这是我的代码

public function ven_coupon()
    {
        if ($_POST) {
            $number = $_POST['coupon'];
            $query = $this->front->ven_coupon($number);
            if (count($query) <= 0 ) {
                echo "Not Valid";
            }
            $payment = $this->cart->total();
            $dis = $query['discount'];
            $name = $query['username'];
            $number = $query['number'];
            $discount['discount'] = ($payment*$dis)/100;
            $discount['data'] = $dis;
            $this->load->view('checkout',$discount);
        }
    }
    public function addcart()
    {
        $ven = $this->ven_coupon();
        echo $ven($name);
        echo $ven($dis);
        echo $ven($number);
    }

您可以在函数外部创建所需的字段(变量),然后使用 this 关键字使用它们。例如:

private $dis;
private $name;
private $number;
public function ven_coupon()
{
    if ($_POST) {
        $number = $_POST['coupon'];
        $query = $this->front->ven_coupon($number);
        if (count($query) <= 0 ) {
            echo "Not Valid";
        }
        $payment = $this->cart->total();
        $this->dis = $query['discount'];
        $this->name = $query['username'];
        $this->number = $query['number'];
        $discount['discount'] = ($payment*$dis)/100;
        $discount['data'] = $dis;
        $this->load->view('checkout',$discount);
    }
}

public function addcart()
{
    $ven = $this->ven_coupon();
    echo $this->name;
    echo $this->dis;
    echo $this->number;
}

变量的作用域在函数内部。您需要将变量作为类的一部分,如下所示:

基本示例:

class yourClass{
   private $name;
   public function functionA(){
      $this->name = "devpro"; // set property
   }
   public function functionB(){
      self::functionA();
      echo $this->name; // call property
   }
}

你的函数ven_coupon()不返回任何内容,因此当你在函数addcart()中读取它时$ven为空。

为了将多个变量从一个函数传递到另一个函数,您需要创建一个数组。

function ven_coupon(){
   $dis = $query['discount'];
   $name = $query['username'];
   $data=array('dis'=>$dis,'name'=>$name)
   return $data
}
function addcart()
{
    $ven = $this->ven_coupon();
    echo $ven['name'];
    //etc.
}

编辑:由于您已经在使用数组$query因此您只需在函数ven_coupon中return $query;,然后在函数addcart()中读取它