我想将函数值传递给同一类中的另一个函数,例如将一些值存储在变量中,然后在同一类中的另一个函数中调用此变量。
这是我的代码
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()中读取它