Je ne trouve aucun exemple, dans des livres ou sur le Web, décrivant comment on initialiserait correctement un tableau associatif uniquement par son nom (avec des valeurs vides) - à moins, bien sûr, que cela IS la bonne façon (?)
C'est comme s'il y avait une autre façon plus efficace de le faire:
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 orientation serait appréciée. Merci.
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', 'dbname', 'dbuser', 'dbpass'), '');
Mais si l'utilisateur doit de toute façon remplir les valeurs, vous pouvez simplement laisser le tableau vide et simplement fournir l'exemple de code dans index.php. Les clés seront automatiquement ajoutées lorsque vous attribuez une valeur.
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'
);