0

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?

1
  • 2
    Pass it through constructor, or create a setTotalPrice method? And please, change this var $totalPrice either by public if you really need it to be or protected Commented Nov 25, 2013 at 8:49

2 Answers 2

1

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;
    }
}
Sign up to request clarification or add additional context in comments.

Comments

0

The idea is to make $totalPrice private, and set him by function like this:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.