Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Parametri di classe

  1. #1
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026

    Parametri di classe

    Salve.
    Vorrei capire se leggo o dico bene le cose, cioè, il codice qui sotto che contiene un costruttore e proprietà della classe quando fa una di queste assegnazione
    tipo "$this->a = $a;" cose accade che la variabile ora si chiamerà "$this->a" per tutta la classe?

    codice:
    myClass{
           public $a = 10;
           public $b = 20;
    
            public function __construct($a, $b) {
                    $this->a = $a;
                    $this->b = $b;
            }
    }
    Se così fosse si può dire che le proprietà dichiarate tipo "public $a=10;" servono esclusivamente al costruttore per costruire le variabili della classe?
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    a) la proprietà si chiamava a e continua a chiamarsi a. $this serve per riferirsi all'istanza corrente (ad esempio $this->proprietaX e $this->metodoY());

    b) No, non si può dire che le proprietà dichiarate tipo "public $a=10;" servono esclusivamente al costruttore per costruire le variabili della classe. Prova ne è il fatto che tali proprietà le userai in vari metodi della tua classe

    Codice PHP:

    public function pippo($obj)
    {
      
    $this->$obj;

    oppure all'esterno della classe stessa

    Codice PHP:

    $obj 
    = new MyClass('valore');

    echo 
    $obj->a// ti stamperà valore 
    Forse ti confonde la keywork $this che non è altro che l'istanza corrente della classe e il costruttore che di fatto è un metodo magico ed il primo metodo eseguito quando istanzi una classe.
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

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.