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

    new classname() o new classname

    Che differenza c'è fra new classname() e new classname?

    Ho visto che alcune classi vengono richiamate con le due parentesi alla fine mentre altre no.

    Mi illuminate?

  2. #2
    Utente di HTML.it L'avatar di sir daniel
    Registrato dal
    Dec 2007
    residenza
    Romania
    Messaggi
    379
    la differenza sta nel fatto che

    new classname() istanzia una classe e invoca il costruttore.
    Se è presente un costruttore, devi istanziarla per forza con le parentesi.

    new classname invece, istanzia una classe senza un costruttore.
    BUT. Honestly - Clarity without the comfortHonest writing by Nicola Mustone on the messy overlap between humans and tech.

  3. #3
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Originariamente inviato da sir daniel
    la differenza sta nel fatto che

    new classname() istanzia una classe e invoca il costruttore.
    Se è presente un costruttore, devi istanziarla per forza con le parentesi.

    new classname invece, istanzia una classe senza un costruttore.
    Falso, non c'è alcuna differenza.
    Anche usando new classname il costruttore sarà sempre richiamato.
    D'altronde ci voleva poco a verificare, prima di dare informazioni sbagliate:

    Codice PHP:
    <?php

    class Pippo
    {
      public function 
    __construct()
      {
           echo 
    'ciao!!' PHP_EOL;
      }
    }

    $p = new Pippo;

  4. #4
    Utente di HTML.it L'avatar di sir daniel
    Registrato dal
    Dec 2007
    residenza
    Romania
    Messaggi
    379
    Non ho verificato perchè ero convintissimo di ciò che dicevo.
    Ricontrollerò.

    EDIT: Ecco, puoi evitarle anche se il costruttore non ha parametri obbligatori... altrimenti no.
    BUT. Honestly - Clarity without the comfortHonest writing by Nicola Mustone on the messy overlap between humans and tech.

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.