Я новичок в парадигме ООП, поэтому, возможно, простое объяснение этого вопроса...
Вам всегда нужно объявлять общедоступные объектные переменные в классе? Например:
<?php
class TestClass
{
var $declaredVar;
function __construct()
{
$this->declaredVar = "I am a declared variable.";
$this->undeclaredVar = "I wasn't declared, but I still work.";
}
function display()
{
echo $this->declaredVar . "<br />";
echo $this->undeclaredVar;
echo "<br /><br />";
}
}
$test = new TestClass;
$test->display();
$test->declaredVar = "The declared variable was changed.";
$test->undeclaredVar = "The undeclared variable was changed.";
$test->display();
?>
В этом коде, даже если $declaredVar
является единственной объявленной переменной, $undeclaredVar
является такой же доступной и полезной - кажется, что я объявляю ее общедоступной.
Если необъявленные переменные класса всегда доступны таким образом, то какой смысл объявлять их все впереди?