Un dubbio nato da una lettura

Salve a tutti ragazzi, durante la documentazione che sto effettuando, mi e' sorto un dubbio riguardo al passaggio delle variabili di istanza. Nel libro che sto seguendo, che si intitola "Object Oriented  PHP Concept Techniques and Code", sono arrivato alla parte che parla dei modificatori di accesso. Ma non mi torna molto questa frase:

However, the important difference is that when you directly access a data member, you are working with the original, but when you use a method to retrieve a data member, you retrieve a copy of that original. When working directly with the original, you risk changing its value, inadvertently or otherwise. When working with a copy, there is no such danger because, should the copy be changed, the original will remain intact. In other words, whats returned from the getFileArray method is returned by value, not by reference.

Ma nn si parlava che le variabili si passano come riferimento all'interno della OOP in PHP?

O ho capito male io?

Grazie intanto per gli aiuti!

inviato 9 anni fa
Pr0v4
X 0 X

Supponi di avere questa classe:

class Test {
   public $attributo = "ciao";

   public function getAttributo() {
      return $attributo;
   }
}

$test = new Test();

Se lavori direttamente su $test->attributo puoi leggere il suo valore ma anche modificarlo. Se invece procedi in questo modo;

$appoggio = $test->getAttributo();

allora anche se cambi $appoggio l'attributo della classe non cambierà. Ma questo è vero finché $attributo contiene un tipo di dato primitivo, diverso quindi da un oggetto poiché gli oggetti vengono sempre passati per riferimento.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Grazie mille Gianni, come sempre riesci a chiarire tutti i miei dubbi!

Spero pian piano di riuscire a dare una mano anche io ai vari utenti di questa community, intanto complimentoni e ti auguro un buon proseguimento!

risposto 9 anni fa
Pr0v4
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda