Originariamente inviato da Gab-81
Questo è assai strano...un costruttore deve necessariamente esserci, altrimenti l'oggetto come lo inizializzo?
non è obbligatoria la presenza di un costruttore in una classe.
Infatti, se usate phpmailer (ad esempio), non inizializzate niente.
Difatti:
Codice PHP:
$mail = new PHPMailer(); 
E' solo buona norma, evitando di aggiungere 30 metodi magari inutili, oppure se la classe ha bisogno di qualcosa che non si può omettere
Tipo:
Codice PHP:
$dir = new dir("/etc"); 
il discorso è lo stesso del distruttore; se in una mia classe ne ho bisogno per fare delle operazione, allora dichiaro il metodo __destruct, altrimenti no.

E siamo alla seconda domanda: un costruttore serve ad inizializzare lo stato dell'oggetto; le funzioni a lavorare sulle variabili definite all'interno dell'oggetto stesso...
Attenzione: tra funzioni e metodi ne passa...
una funzione non appartiene ad un oggetto, a differenza dei metodi, e come tale non può accedere alle propietà dell'oggetto (non essendoci)