Reputation: 1039
i got one class and i'm trying to implement it into my website, but i'm unable to pass variable into it...
class Order {
var $totalPrice = null;
function load() {
$this->totalPrice = 123;
}
function loadByPaymentSessionId($paymentSessionId) {
$this->totalPrice = 123;
}
}
$order = new Order();
$order->load();
How can i set $this->totalPrice outside of class?
Upvotes: 0
Views: 375
Reputation: 15580
At the moment your property is given public access, so:
$order->totalPrice = 4.65;
Alternatively, if you want the ability to set the price at the point of instantiation you could provide a constructor with an argument:
class Order {
public $totalPrice;
public function __construct($totalPrice = null)
{
$this->totalPrice = $totalPrice;
}
}
$order = new Order(4.85);
Or, if you need to perform some kind of logic while the value is set, you could prevent direct access to the class member and provide an accessor method:
class Order {
private $totalPrice;
public function setTotalPrice($totalPrice)
{
$this->totalPrice = (float) $totalPrice;
}
}
Upvotes: 1
Reputation: 1487
The idea is to make $totalPrice
private, and set him by function like this:
function load2($newVal) {
//some validation
$this->totalPrice = $newVal;
}
Upvotes: 0