我有这个特殊的购物车类:
class Cart
{
public $items;
public function __construct() {
$this->items = $this->getItems();
}
public function __get($method_name) {
if ($method_name == 'total') {
return $this;
}
$get_method = "getTotal" . ucfirst($method_name);
if (method_exists($this, $get_method)) {
return $this->{$get_method}();
}
return null;
}
/**
* Retrieve the stored products from the cart
*/
public function getItems($product = null) {
//return all the items in the shopping cart
}
/**
* Retrieve the total number of items in the cart
*/
public function getTotalItems() {
return count($this->items);
}
public function getTotalQuantity() {
//return the total quantity of items in the shopping cart
}
}
我有可能这样做:
$cart->items
获取购物车中的所有商品$cart->total->quantity
触发类的getTotalQuantity
方法我希望在执行getTotalItems
时触发$cart->total->items
方法,但它始终使用类的属性items
而不是getTotalItems
方法。
当我更改属性items
的可见性时,它工作正常,但我不想使用此方法。
如何将$cart->total->items
引导至方法getTotalItems
而非财产items
?