general666
general666

Reputation: 1039

passing variable into class functions and use it

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

Answers (2)

shanethehat
shanethehat

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

MeNa
MeNa

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

Related Questions