Zastanawiam się, czy właściwość klasy jest instancjonowana i używana tylko w jednej metodzie klasy, czy powinna to być właściwość klasy w ogóle, czy powinna być po prostu zmienną lokalną dostępną tylko dla tej metody klasy?Czy powinienem zachować zmienne używane tylko w jednej metodzie lokalnej lub zadeklarować je jako właściwości klasy?
Na przykład, należy zachować zmienną używany tylko w jednej metodzie jako zmiennej lokalnej tak:
class myClass
{
public function myMethod()
{
$_myVariableUsedOnlyOnce = "Hello World";
echo $_myVariableUsedOnlyOnce;
}
}
Albo powinienem zrobić zmienną prywatną klasa własności takiego:
class myClass
{
private $_myVariableUsedOnlyOnce;
public function myMethod()
{
$this->_myVariableUsedOnlyOnce = "Hello World";
echo $this->_myVariableUsedOnlyOnce;
}
}
Które podejście "pachnie"? Jakie są zalety tworzenia wszystkich właściwości klasy zmiennych metodowych innych niż wtedy, gdy potrzebuję print_r() całego obiektu do celów debugowania?
Dzięki
Jeśli masz pewność, że zostanie użyty tylko raz, ustaw go lokalnie na metodę. W przeciwnym razie możesz zrobić to prywatnie. _W razie braku potrzebujesz wartości tej zmiennej, aby przetrwać między wywołaniami tej metody, w której musiałaby ona być przynajmniej "statyczna" w metodzie. –