小编Tom*_*Tom的帖子

OOP - 没有GET/SET

"告诉,不要问" - 原则之后,不应该在OOP中使用getter.

但是如何解决问题(至少我认为)实际上需要一些来自对象的"内部信息"?那么如何更改以下示例以便create_bill()函数不需要ASK来获取每个项目的价格?

class chopping_cart {

    private $itemlist = array();

    function item_add( $name, $price ) {
        $his->itemlist[]=new item( $name, $price );
    }
    private create_bill() {

        foreach $this->itemlist AS $element;
        $sum += $element->get_price();

    }
}


class item {
    private $name;
    private $price;
    function __construcor($name,$price) {...}
    function get_price() {
        return $price;
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

$sc = new shopping_cart()
$sc->item_add( "Bike", 1.00 );
$sc->item_add( "Ship", 2.00 );
$sc->create_bill();
Run Code Online (Sandbox Code Playgroud)

php oop

5
推荐指数
1
解决办法
405
查看次数

标签 统计

oop ×1

php ×1