Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    Definire vari array e importarli in una classe

    Ciao a tutti,

    come posso fare in modo di definire vari array per poi importarli e utilizzarli all'interno di una classe?

    Mi servirebbe definire vari array e poi poterli importare, a seconda delle esigenze in varie classi definendo al suo interno delle variabili:

    Es:
    codice:
    //file array form
    //array nome
    return 
    [
    'nome'=>
    [
    "class"=>"footer pippo pluto",//valore fisso
    "id"=>"%id",// %id sarebbe variabile
    "value"=>"%value",// %value sarebbe variabile
    "maxlength"=>"%maxlength",// %maxlength sarebbe variabile
    ]
    ];
    //array cognome
    ,[
    'cognome'=>
    [
    "class"=>"qui quo qua",//valore fisso
    "maxlength"=>"100",//valore fisso
    "id"=>"%id",// %id sarebbe variabile
    "value"=>"%value",// %value sarebbe variabile
    ]
    ];
    Ora ammettiamo di avere una classe:
    codice:
    class Form{
    public function add(){
    }
    }

    La mia esigenza sarebbe fare un metodo add nella classe Form che mi permetta di scrivere in un'altra classe:

    codice:
    $form=new Form();
    $form->add('cognome',['id'=>'5','value'=>'Rossi']);
    $form->add('nome',['id'=>'9','value'=>'Paolo','maxlength'='33']);
    Vorrei evitare di fare un metodo per ogni array all'interno della classe Form, penso che ci sia un modo, ma come!
    Non ho bisogno che mi scriviate il codice ma solo la logica da seguire!

    Grazie,
    Roberto

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    29
    class classe {
    public $generic_array= array();
    public function generic_function($parametric){
    }
    }

    $classe = new classe();
    $classe->
    generic_array = ["ciao","come","stai"];

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da fladipa Visualizza il messaggio
    class classe {
    public $generic_array= array();
    public function generic_function($parametric){
    }
    }

    $classe = new classe();
    $classe->
    generic_array = ["ciao","come","stai"];
    Ciao,
    ma in questo modo devo appunto definire l'array dentro la classe, cosa che non voglio, ho risolto parzialmente così:
    codice:
        
    class MiaClasse{
    protected function getArray($nomeFile) {
           
            $directory=DIREZIONE."config/array/";
            $link=$directory.$nomeFile.".php";
            if (is_file($link)) {
                return include $link;
            }
                return false;
        }
    }
    all'interno della directory array ho vari file php, in ognuno definisco un array specifico tipo:
    codice:
    return ['test'=>['uno'=>'%variabileuno','due'=>'222','tre'=>'3']];
    Adesso manca il problema di passare delle variabili ma pensavo di risolvere passando un secondo parametro,un array, $this->geyArray($nomeFile,$array),con la lista dei parametri da sostituire con quello restituito, facendo un foreach e controllando che la key esista, tipo:

    codice:
    $this->geyArray($nomeFile,['uno'=>'questo_dato_sotituirà_il_valore_del_campo_uno']);
    C'e' un modo migliore?


    Roberto

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non capisco cosa vuoi fare. Se il tuo metodo si chiama getArray si premette che ritorni un array. A che cosa serve il secondo parametro ?

    Cosa fa return include $link ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Non capisco cosa vuoi fare. Se il tuo metodo si chiama getArray si premette che ritorni un array. A che cosa serve il secondo parametro ?

    Cosa fa return include $link ?
    Ciao, scusa per la tardiva risposta.

    Vorrei generare con degli array dei form, definendo dei campi, recuperandoli in un file, e che alcuni campi fossero variabili, mi spiego:

    Sono arrivato a strutturare la logica di definizione, lettura e creazione del codice html e il passaggio delle variabili, ma vorrei, in questo ultimo caso, capire se è il modo migliore o ce n'é un altro!

    Ammettiamo di avere il seguente array:
    codice:
    return 
    [
    'nome'=>
    [
    "class"=>"footer pippo pluto",//valore fisso
    "id"=>"#VALOREVARIABILE#",// campo variabile
    "value"=>"#VALOREVARIABILE#",// campo variabile
    "maxlength"=>"#VALOREVARIABILE#",// campo variabile
    ]
    ];
    //array cognome
    ,[
    'cognome'=>
    [
    "class"=>"qui quo qua",//valore fisso
    "maxlength"=>"100",//valore fisso
    "id"=>"#VALOREVARIABILE#",// campo variabile
    "value"=>"#VALOREVARIABILE#",// campo variabile
    ]
    ];
    ammettiamo di avere ora una istanza di una classe all'interno della quale è stato definito un metodo "get":
    codice:
    $form->get("nome");
    mi genera in automatico il codice html del campo input:
    codice HTML:
    <input class="footer pippo pluto" id="#VALOREVARIABILE#" value="#VALOREVARIABILE#" maxlength="#VALOREVARIABILE#">
    Vorrei che, scrivendo:
    $form->get("nome",["idCampo","Pippo","25"]);

    Mi generi:
    codice HTML:
    <input class="footer pippo pluto" id="idCampo" value="Pippo" maxlength="25">
    Avevo pensato di effettuare un foreach e sostituire ogni corrispondenza #VALOREVARIABILE# con la posizione dell'array passato.

    Il mio dubbio è, c'è una forma migliore e nativa di PHP per effettuare tale operazione, ovvero inserire ad esempio delle variabili, tipo come si fa nel metodo prepare della classe Pdo?
    codice:
    $b=$a->prepare("UPDATE `users` SET user=:var");
    Grazie,
    Roberto

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.