使用默认数组初始化php类


initializing php class with default array

这是我的php代码:

$settings = array(
    'width'         => 500,
    'height'        => 300
);
$mygrid->init($settings);

分类代码:

class mygrid
{
    function __construct($settings)
    {
       $default_settings = array(
        'width'         => 500,
        'height'        => 300
       )
    }
}

我想合并两个数组,以便回退到默认值,例如,当创建一个只设置宽度的实例时:

$settings = array('width' => 800);
$mygrid->init($settings);

该类应使用300 的默认高度

感谢

你看过array_merge()吗?

function init($settings) {
    $defaults = aray('width' => 250, 'height' => 300, 'color' => 'black');
    $this->settings = array_merge($defaults, $settings);
}

以你的例子,结果将是:

$this->settings = array('width' => 300, 'height' => 500, 'color' => 'black');

$settings参数中传递的每个键都将覆盖$defaults中的等价键。