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 __co开发者_如何学运维nstruct(){
$this->my_var = null; // or here?
}
}
?>
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.
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.
Depends on the usage of the variable. OOP emphasizes that you initialize your variables in the constructor of the class.
i'd say
class Foo
{
public $bar = 'default';
function __construct($custom_bar = null) {
if(!is_null($custom_bar))
$this->bar = $custom_bar;
}
As soon as you have enough info to set them correctly.
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.
精彩评论