我找不到任何示例,无论是在书中还是在web上,都无法描述如何仅通过名称(具有空值)正确地初始化关联数组-当然,除非这是正确的方式(?)
只是感觉好像有另一种更有效的方法来做到这一点:
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.
任何建议,建议,或方向,我们将不胜感激。谢谢。
发布于 2012-10-14 15:12:21
你所拥有的是最清晰的选择。
但您可以使用array_fill_keys将其缩短,如下所示:
$database = array_fill_keys(
array('dbdriver', 'dbhost', 'dbname', 'dbuser', 'dbpass'), '');
但是,如果用户无论如何都要填充值,您可以将数组保留为空,并使用index.php提供示例代码。当您赋值时,将自动添加密钥。
发布于 2012-10-14 15:13:47
第一个文件:
class config {
public static $database = array();
}
其他文件:
config::$database = array(
'driver' => 'mysql',
'dbhost' => 'localhost',
'dbname' => 'test_database',
'dbuser' => 'testing',
'dbpass' => 'P@$$w0rd'
);
https://stackoverflow.com/questions/12880026
复制相似问题