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

时间:2016-03-06 19:58:10

标签: php function codeigniter

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

这是我的代码

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

3 个答案:

答案 0 :(得分: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,所以您可以在函数ven_coupon中使用return $query;,然后在函数addcart()中读取它

答案 1 :(得分:0)

您可以在函数外创建所需的字段(变量),然后使用 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;
}

答案 2 :(得分:0)

变量的范围在函数内部。你需要将变量作为类的一部分变为:

基本示例:

int a = (int) ( Math.random()*((hauteur*HMURET+1)-2) );
for(int i=0; i<(this.hauteur*HMURET+1); i++)
{
System.out.print("|");
for(int j=0; j<(this.largeur*LMURET+1)-2; j++)
{
    System.out.print(" ");
}
  if(i<a){
     System.out.println("");
  }else{
    System.out.println(this.dessinLaby[i][0] = '|');
  }
}