2016-03-06 112 views
1

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

这里是我的代码

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); 
    } 
+0

你可以使用类属性。类中的任何函数都可以为这些属性设置值,而其他一些函数可以使用这些新值。 – Milan

+0

兄弟,你仍然找到解决方案,请检查答案。 – devpro

回答

0

你的函数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,你可以在你的函数addcart()简单地return $query;在功能ven_coupon,然后读取它

+0

请告诉我如何在addcart()函数中返回所有这些值。你可以请给我代码演示谢谢 –

+1

看到我的编辑原始答案 – Vickel

0

您可以创建的字段(变量),你需要外功能,然后使用它们使用这个关键字。例如:

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; 
} 
+0

我在我的代码中使用构造函数,这就是为什么全局变量不能工作 –

0

变量的作用域在函数内部。你需要做变量作为类的一部分:

基本示例:

class yourClass{ 
    private $name; 

    public function functionA(){ 
     $this->name = "devpro"; // set property 
    } 

    public function functionB(){ 
     self::functionA(); 
     echo $this->name; // call property 
    } 
} 
相关问题