valores vacio multidimensional manejo elementos ejemplos declarar comparar asociativo array agregar php arrays initialization associative

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.