Domanda

Nella mia ricerca nel tentativo di saperne di più su OOP in PHP. Ho incontrato alcune volte la funzione di costruzione e semplicemente non posso più ignorarla. Nella mia comprensione, il costruttore è chiamato nel momento in cui creo un oggetto, è corretto?

Ma perché dovrei creare questo costruttore se posso usare " normale " funzioni o metodi come vengono chiamati?

applausi, Keith

È stato utile?

Soluzione

Sì, il costruttore viene chiamato quando viene creato l'oggetto.

Un piccolo esempio dell'utilità di un costruttore è questo

class Bar
{
    // The variable we will be using within our class
    var $val;

    // This function is called when someone does $foo = new Bar();
    // But this constructor has also an $var within its definition,
    // So you have to do $foo = new Bar("some data")
    function __construct($var)
    {
        // Assign's the $var from the constructor to the $val variable 
        // we defined above
        $this->val = $var
    }
}

$foo = new Bar("baz");

echo $foo->val // baz

// You can also do this to see everything defined within the class
print_r($foo);

UPDATE: Una domanda ha anche chiesto perché questo dovrebbe essere usato, un esempio di vita reale è una classe di database, in cui si chiama l'oggetto con il nome utente e la password e la tabella a cui connettersi, a cui il costruttore si connetterebbe. Quindi hai le funzioni per fare tutto il lavoro all'interno di quel database.

Altri suggerimenti

Il costruttore consente di assicurarsi che l'oggetto sia messo in uno stato particolare prima di tentare di usarlo. Ad esempio, se l'oggetto ha determinate proprietà richieste per l'utilizzo, è possibile inizializzarle nel costruttore. Inoltre, i costruttori consentono un modo efficiente di inizializzare gli oggetti.

L'idea del costruttore è quella di preparare un gruppo iniziale di dati per l'oggetto, in modo che possa comportarsi in modo previsto.

Basta chiamare un metodo non è un affare, perché puoi dimenticarti di farlo, e questo non può essere specificato come "richiesto prima del lavoro" in sintassi, quindi otterrai "rotto" oggetto.

I costruttori sono buoni per una varietà di cose. Inizializzano le variabili nella tua classe. Supponiamo che tu stia creando una classe BankAccount. $ b = nuovo BankAccount (60); ha un costruttore che fornisce al conto bancario un valore iniziale. Fondamentalmente impostano variabili all'interno della classe o possono anche inizializzare altre classi (ereditarietà).

Il costruttore è per l'inizializzazione quando viene creato un oggetto.

Non si vorrebbe chiamare un metodo arbitrario su un oggetto appena creato perché questo va contro l'idea di incapsulamento e richiederebbe l'utilizzo del codice con questo oggetto per avere una conoscenza intrinseca del suo funzionamento interno (e richiede un maggiore sforzo).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top