dotty
dotty

Reputation: 41433

When should variables be set in a class

Hay, when should variables be set within a PHP class?

<?php
    class MyClass {
        var $my_var;    // here? like var $my_var = null;
        function __construct(){
            $this->my_var = null; // or here?
        }
    }
?>

Upvotes: 1

Views: 156

Answers (6)

James
James

Reputation: 82096

Depends on the usage of the variable. OOP emphasizes that you initialize your variables in the constructor of the class.

Upvotes: 1

James Cronen
James Cronen

Reputation: 5763

To me, a variable initialized at its declaration (outside of the constructor) looks too much like a constant. It's totally preference, but I choose to initialize in the constructor if at all possible.

Upvotes: 0

pauljwilliams
pauljwilliams

Reputation: 19225

As soon as you have enough info to set them correctly.

Upvotes: 0

Mayo
Mayo

Reputation: 10772

I'm thinking it would be best to initialize them in the constructor. I would normally think it's a matter of developer preference, but with the introduction of auto-implemented properties with C# 3.0, I think it makes more sense to simply put all intialization in the constructor(s) because you cannot supply a value to a property declared in this manner. And being consistent about where you intialize variables makes your code more readable.

Upvotes: 1

user187291
user187291

Reputation: 53940

i'd say

    class Foo 
    {
        public $bar = 'default';

        function __construct($custom_bar = null) {
            if(!is_null($custom_bar))
                $this->bar = $custom_bar;
        }

Upvotes: 0

Greg
Greg

Reputation: 321578

It depends what you want to initialise them to. I prefer to initialise them when they're declared if possible, but if they need to be, for example, the result of a method call, then you'll need to initialise them in the constructor.

Upvotes: 3

Related Questions