2016-03-06 109 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 
    } 
} 
相關問題