Mi sono chiesto se una proprietà di classe viene creata un'istanza e utilizzata solo in un metodo di classe se si tratta di una proprietà di classe o dovrebbe essere solo una variabile locale accessibile solo a quel metodo di classe?Devo mantenere le variabili utilizzate solo in un metodo di classe locale o dichiararle come proprietà di classe?
Per esempio, devo mantenere una variabile utilizzata solo in un metodo come variabile locale come questo:
class myClass
{
public function myMethod()
{
$_myVariableUsedOnlyOnce = "Hello World";
echo $_myVariableUsedOnlyOnce;
}
}
o devo fare la variabile di una proprietà di classe privata in questo modo:
class myClass
{
private $_myVariableUsedOnlyOnce;
public function myMethod()
{
$this->_myVariableUsedOnlyOnce = "Hello World";
echo $this->_myVariableUsedOnlyOnce;
}
}
Quale approccio "puzza"? Quali sono i vantaggi nel rendere tutte le proprietà della classe delle variabili del metodo diverse da quando ho bisogno di stampare l'intero oggetto per scopi di debug?
Grazie
Se sei sicuro che verrà usato una sola volta, renderlo locale al metodo. Altrimenti, hai ragione a renderlo privato. _In assenza_ è necessario che il valore di tale variabile permanga tra le chiamate di quel metodo, in cui dovrebbe almeno essere 'statico' nel metodo. –