Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di faro14
    Registrato dal
    Aug 2012
    Messaggi
    199

    getter e setter php ad oggetti

    ciao a tutti, dopo qualche anno di programmazione PHP e un anno di programmazione java mi è venuta l'idea di studiare PHP ad oggetti,
    ho letto qualche guida compresa quella di html.it ma non mi sono molto chiari "metodi magici", esclusi toString,costruttore e distruttore; gli altri non riesco proprio a capirli, in particolare come funzionano __get e __set, potete spiegarmeli in parole semplici.
    ps: finora ho guardato qui http://www.html.it/pag/18363/i-metod...i-prima-parte/

  2. #2
    ma guardare http://www.php.net/manual/en/languag...php#object.get che ci sono anche gli esempi no?

    praticamente __get e __set ti permette di avere getter e setter di variabili private senza dover, per ogni variabile, definire i rispettivi getter e setter.
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    ah, ovviamente non avrai come in Java $obj->getVariabile, ma avrai direttamente $obj->variabile per il get e $obj->variabile = "pippo_pluto_paperino" per il set
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Utente di HTML.it L'avatar di faro14
    Registrato dal
    Aug 2012
    Messaggi
    199
    Originariamente inviato da Santino83_02
    praticamente __get e __set ti permette di avere getter e setter di variabili private senza dover, per ogni variabile, definire i rispettivi getter e setter.
    questo lo avevo capito, però non capisco come funzionino, avevo visto la descrizione di php.net ma non capisco bene come funzionino, devo dichiarare un array associativo come $data come nell'esempio? e uso quello e basta?
    nell'esempio quando fa:
    Codice PHP:
    echo $obj->hidden 
    non stampa nulla(giustamente) perchè in quell'array non c'è un indice chiamato hidden nonastante $hidden sia valorizzato... tutto qui ho capito bene o non colgo qualcosa?

  5. #5
    $obj->hidden non ti stampa nulla perchè $hidden è una variabile dichiarata privata, quindi quando la richiami dall'esterno dell'oggetto, non è visibile e quindi usa __get e quindi non ti stampa nulla perchè non esiste in $data. Se tu facessi $obj->hidden = 2; echo $obj->hidden, per come è strutturato l'esempio allora vedresti in output 2, ma dall'esterno sono due variabili differenti quella interna private e quella valorizzata con __set. Personalmente, odio usare __get/__set e relativi isset/unset anche perchè non ne vedo l'utilità.
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Utente di HTML.it L'avatar di faro14
    Registrato dal
    Aug 2012
    Messaggi
    199
    Originariamente inviato da Santino83_02
    Personalmente, odio usare __get/__set e relativi isset/unset anche perchè non ne vedo l'utilità.
    infatti era proprio questo che mi ha spinto a chiedere sul forum(pensavo di averli capiti male io)... si in pratica crei un altro attributo nella classe con relativi metodi per "lavorarci", pensavo potesse essere qualcosa di più concreto e sinceramente li trovo un po fuorvianti... comunque grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.