1

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? } } ?> 

6 Answers 6

3

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.

Sign up to request clarification or add additional context in comments.

4 Comments

So it does not really matter? Either way i want all my variables to be set to null upon creating an instance of the object.
No it doesn't matter. Just ensure you have them initialized before you intend to use them.
If you want them set to null then just var $my_var; will do (though you should be using e.g. public $my_var; for PHP5)
Cheers greg. You've been a big help :)
1

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.

1 Comment

Well that's certainly funny... figured it was .NET. I see everything as pseudo code these days I guess.
1

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

Comments

0

i'd say

 class Foo { public $bar = 'default'; function __construct($custom_bar = null) { if(!is_null($custom_bar)) $this->bar = $custom_bar; } 

Comments

0

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

Comments

0

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.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.