Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Domandina sull'uso della keyword $this

    Ciao,
    in questi giorni stò studiandomi PHP OO, vengo da Java...

    Da quello che mi ricordo in Java il this lo si usa per indicare che ci si stà riferendo ad una variabile di istanza dell'oggetto che si stà usando in quel momento. In Java mettere this davanti alla variabile di istanza è facoltativo...se non lo si mette ci si riferisce automaticamente a quella...mi sembra di capire che in PHP non sia così, giusto?

    L'altra cosa che mi ha confuso le idee è stato leggere sulla guida di HTML.it a PHP OO (quì: http://php.html.it/guide/lezione/41...la-classe-this/) la seguente frase: "Questo è un concetto di fondamentale importanza, che ci permette di accedere alle varie componenti (pubbliche) della classe direttamente dal suo interno."

    Cosa mi sta dicendo? che posso usare $this solo davanti a variabili di istanza dichiarate come public ?!?! In Java non è affatto così...anzi da quel poco che sò di programmazione OO la professoressa ci ha spaccato la testa che le variabili di istanza devono sempre essere dichiarate private per nascondere l'implementazione all'utente che poi userà la classe (information hiding) e che l'utente dovrà poter operare con la classe solamente attraverso la sua interfaccia (l'insieme dei metodi public)

    Come mai quì mi dice che posso usare $this solo davanti alle variabili di istanza pubbliche ?!?! Mi sembra un po' un controsenso...

    Grazie a tutti

  2. #2
    $this ti permette di accedere a tutte le proprietà e i metodi della classe indipendentemente dal loro attributo di visibilità

    Ti permette inoltre di accedere a metodi pubblic o protected delle classi parent.

    diverso il discorso quando una classe viene istanziata.

    $obj = new NomeClasse();

    In questo caso, $obj ti permette di accedere unicamente ai metodi e proprietà pubblic.
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    Originariamente inviato da mtx_maurizio
    $this ti permette di accedere a tutte le proprietà e i metodi della classe indipendentemente dal loro attributo di visibilità

    Ti permette inoltre di accedere a metodi pubblic o protected delle classi parent.

    diverso il discorso quando una classe viene istanziata.

    $obj = new NomeClasse();

    In questo caso, $obj ti permette di accedere unicamente ai metodi e proprietà pubblic.
    Ok...quindi se ho ben capito...come in Java se faccio qualcosa del genere:

    codice:
    <?php
    
    class MyClass{
          public $a = "Ciao";
    
          public function stampa(){
                 echo $a;
          }
    }
    
    $ogg = new Myclass();
    $ogg->stampa();
    ?>
    In teoria dovrebbe stamparmi la scritta Ciao o sbaglio?

  4. #4
    Codice PHP:
    class MyClass{
          public 
    $a "Ciao";

          public function 
    stampa(){
                 echo 
    $this->a//this si usa così
          
    }
    }

    $ogg = new Myclass();
    $ogg->stampa(); 
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  5. #5
    Si ok...cmq olevo dire con la variabile private e non public

    codice:
    class MyClass{
          private $a = "Ciao";
    
          public function stampa(){
                 echo $this->a; //this si usa così
          }
    }
    
    $ogg = new Myclass();
    $ogg->stampa()
    Cmq si funziona...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 © 2024 vBulletin Solutions, Inc. All rights reserved.