Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Classe php

  1. #1

    Classe php

    Salve a tutti, ho iniziato la programmazione ad oggetti con php ma nonostante abbia letto tantissimi documenti che trattavano le classi/metodi/costruttori ho ancora qualche dubbio

    Ho creato il file oggetto.php contenente:
    Codice PHP:
    <?php
    class InputText
    {
        public function 
    __construct($Width='100px'$Name$MaxLength='10'$Cols='10'$Required='no'$Visible='yes'$ReadOnly='no'$Alt$Class$Align='left'$EraseOnCopy='no'$Default$MaskPassword='no'$IsGuid='no'$Reset='no'$AliasExpression)
        {
            
            echo 
    "<TD CLASS='INPUTCELL' valign='middle' WIDTH='".$Width."' ALIGN='".$Align."'>";
            echo 
    "<INPUT CLASS='CONTROLS_FLAT' NAME='".$Name."' MAXLENGTH='".$MaxLength."' SIZE='".$Cols."' TYPE='TEXT' VALUE=''></TD>";
            
        }
    }    
    ?>
    e poi la invoco nel file prova.php

    Codice PHP:
    <?php
    include "Oggetto.php";
    $prova = new InputText();
    ?>
    Adesso il mio problema è settare quei paramentri che non ho impostato come ad esempio $Name

    e se metto
    Codice PHP:
    $prova = new InputText($Name='NomeProva'); 
    non funzionna correttamente perche mette il 'NomeProva' al posto del valore di Width.

    sicuramente sbaglio qualcosa di base ma essendo all'inizio non riesco a capire dove e come correggere.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453

    Codice PHP:
    $prova = new InputText('100px','NomeProva'); 

  3. #3
    cercavo una soluzione che mi evitasse di dover riscrivere i campi di default

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Ma perchè i campi di default non li setti in dei metodi statici ?

    Codice PHP:
    class InputText 

        public static 
    $Width '100px';
        public static 
    $Align '10';
        public static 
    $MaxLength '10';
        public static 
    $Cols '10';
        
    //... e cosi via
        
    public function __construct($Name$Alt$Class$Default$AliasExpression
        { 
             
            echo 
    "<TD CLASS='INPUTCELL' valign='middle' WIDTH='".self::$Width."' ALIGN'".self::$Align."'>"
            echo 
    "<INPUT CLASS='CONTROLS_FLAT' NAME='".$Name."' MAXLENGTH='".self::$MaxLength."' SIZE='".self::$Cols."' TYPE='TEXT' VALUE=''></TD>"
             
        } 
    }

    //quando vai a richiamare la classe puoi settare i campi necessari prima

    InputText::$Width '200px';

    new 
    InputText('LOL'); 

  5. #5
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Il manuale PHP recita:
    Note that when using default arguments, any defaults should be on the right side of any non-default arguments; otherwise, things will not work as expected. Consider the following code snippet:
    Quindi se vuoi che $name non abbia un valore di default deve essere il primo dei parametri (quello più a sinistra)

    Esmpio 5 e 6 del manuale ufficiale

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  6. #6
    Grazie per le info, molto utili, sono arrivato alla conclusione di cambiare del tutto la mia classe lasciando il __costructor per settare solo i valori, poi lascio ad altri metodi il compito di visualizzare il mio oggetto. Sperando sempre di riuscire a fare tutto quello che ho in mente!

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.