我正在尝试建立库存和收银机模拟,在我有2个类的代码中,首先是Inventory
,第二个是Cash
。两者都有自己的属性和方法。
当我尝试销售商品时,_balance
商家正在提供Error undefined _balance
而_balance
仍为0
。
我该如何解决?如果已经问过这个问题,请给链接不要标记为重复。我找不到它。
<?php
class Inventory {
public $_name;
public $_price;
public $_stock;
public function _addStock($item,$itemIn)
{
$this->_stock += $itemIn;
}
};
$item2 = new Inventory;
$item2->_name = "item2";
$item2->_price = 5000;
$item2->_addStock('item2',100);
$item1 = new Inventory;
$item1->_name = "item1";
$item1->_price = 1000;
$item1->_addStock('item1',100);
class Cash {
private $_balance = 0;
public function _display(Inventory $_name)
{
echo $_name->_price;
}
public function getBalance()
{
echo $this->_balance;
}
public function sell(Inventory $_name, $amount)
{
return $_name->_stock -= $amount;
return $_balance += $_name->_price*$amount;// Error $_balance undifined
}
};
$cash = new Cash;
print_r($item2);
echo "<br/>";
print_r($item1);
echo " <br/>Balance :<br/>";
$cash->getBalance();
echo "<br/>item1 price :<br/>";
$cash->_display($item1);
echo "<br/>item2 price :<br/>";
$cash->_display($item2);
echo "<br/>item1 sold 12 pcs<br/>";
$cash->sell($item1,12);
$cash->sell($item2,12);
echo "<br/>item2 sold 12 pcs <br/>";
echo "<br/> current stock :<br/>";
print_r($item2);
echo "<br/>";
print_r($item1);
echo "<br/> current balance :<br/>";
$cash->getBalance();
?>
答案 0 :(得分:4)
在Cash
班级,sell
方法中,您有两次返回。
你得到的错误是因为你忘记了$this
,所以php是正确的抱怨,变量$balance
尚未定义。
public function sell(Inventory $_name, $amount){
$_name->_stock -= $amount;
return $this->_balance += $_name->_price*$amount;// this clears the error
}