multidimensional - declarar array vacio php
Inicializar una matriz asociativa con nombres clave pero valores vacĂos (2)
Primer archivo:
class config {
public static $database = array();
}
Otro archivo:
config::$database = array(
''driver'' => ''mysql'',
''dbhost'' => ''localhost'',
''dbname'' => ''test_database'',
''dbuser'' => ''testing'',
''dbpass'' => ''P@$$w0rd''
);
No puedo encontrar ningún ejemplo, en libros o en la web, que describa cómo se inicializaría correctamente una matriz asociativa solo por nombre (con valores vacíos), a menos que, por supuesto, esta sea la forma correcta (?)
Simplemente se siente como si hubiera otra manera más eficiente de hacer esto:
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.
Cualquier recomendación, sugerencia o dirección sería apreciada. Gracias.
Lo que tienes es la opción más clara.
Pero podrías acortarlo usando array_fill_keys , así:
$database = array_fill_keys(
array(''dbdriver'', ''dbhost'', ''dbname'', ''dbuser'', ''dbpass''), '''');
Pero si el usuario tiene que completar los valores de todos modos, puede dejar el conjunto vacío, y simplemente proporcionar el código de ejemplo en index.php. Las teclas se agregarán automáticamente cuando asigne un valor.