0

ここに私の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 を使用する必要があります

ありがとう

4

1 に答える 1

3

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

于 2013-08-02T07:46:09.990 に答える