59 votes

Initialiser un tableau associatif avec des noms de clé mais des valeurs vides

Je ne trouve aucun exemple, dans des livres ou sur le Web, décrivant comment initialiser correctement un tableau associatif par son nom uniquement (avec des valeurs vides) - à moins, bien sûr, que ce ne soit la bonne manière (?)

Il me semble qu’il existe un autre moyen plus efficace de procéder:

config.php

 class config {
    public static $database = array (
        'dbdriver' => '',
        'dbhost' => '',
        'dbname' -> '',
        'dbuser' => '',
        'dbpass' => ''
    );
}

// Is this the right way to initialize an Associative Array with blank values?
// I know it works fine, but it just seems ... longer than necessary.
 

index.php

 require config.php

config::$database['dbdriver'] = 'mysql';
config::$database['dbhost'] = 'localhost';
config::$database['dbname'] = 'test_database';
config::$database['dbuser'] = 'testing';
config::$database['dbpass'] = 'P@$$w0rd';

// This code is irrelevant, only to show that the above array NEEDS to have Key
// names, but Values that will be filled in by a user via a form, or whatever.
 

Toute recommandation, suggestion ou direction serait appréciée. Merci.

61voto

GolezTrol Points 54531

Ce que vous avez est l'option la plus claire.

Mais vous pouvez le raccourcir en utilisant array_fill_keys , comme ceci:

 $database = array_fill_keys(
  array('dbdriver', 'dbhost', 'sbname', 'dbuser', 'dbpass'), '');
 

Mais si l'utilisateur doit quand même remplir les valeurs, vous pouvez simplement laisser le tableau vide et fournir simplement l'exemple de code dans index.php. Les clés seront automatiquement ajoutées lorsque vous attribuez une valeur.

3voto

Seth Points 954

Premier fichier:

 class config {
    public static $database = array();
}
 

Autre fichier:

 config::$database = array(
    'driver' => 'mysql',
    'dbhost' => 'localhost',
    'dbname' => 'test_database',
    'dbuser' => 'testing',
    'dbpass' => 'P@$$w0rd'
);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X