2013-11-25 39 views
0

我有一個類,我想落實到我的網站,但我無法變量傳遞到它...通過可變進級的功能和使用它

class Order { 

    var $totalPrice = null; 

    function load() { 
     $this->totalPrice = 123; 
    } 

    function loadByPaymentSessionId($paymentSessionId) { 
     $this->totalPrice = 123; 
    } 
} 

$order = new Order(); 
$order->load(); 

哪能在課堂外設置$ this-> totalPrice?

+2

通過它通過構造函數,或者創建一個'setTotalPrice'方法?而且,如果你真的需要它或被保護,請更改'var $ totalPrice'或'public' – Touki

回答

1

在你的財產被賦予當下公衆訪問,因此:

$order->totalPrice = 4.65; 

另外,如果你想將價格定在實例化的時候,你可以提供一個參數的構造能力:

class Order { 

    public $totalPrice; 

    public function __construct($totalPrice = null) 
    { 
     $this->totalPrice = $totalPrice; 
    } 
} 

$order = new Order(4.85); 

或者,如果您需要執行某種邏輯,而該值設置,可以防止類成員的直接訪問,並提供一個訪問方法:

class Order { 

    private $totalPrice; 

    public function setTotalPrice($totalPrice) 
    { 
     $this->totalPrice = (float) $totalPrice; 
    } 
} 
0

的想法是讓$totalPrice私人,並通過這樣的功能設置了他:

function load2($newVal) { 
     //some validation 
     $this->totalPrice = $newVal; 
    }