2

マジック ナンバーと少しの将来性を回避するために、複数の構成要素を持つ単一の定数または変数を宣言して、単一のポイントで将来値を変更できるようにしたいと考えています。

例えば

$myPdf->setFillColor(88, 38, 123) # using this method many times in a routine.

現在、利害関係者は pdf の背景色を変更したいと考えているため (要件の承認後ずっと...)、この RGB 値を変更する場所はたくさんあります。メソッドsetFillColor($r, $g, $b)はサードパーティのコンポーネントからのものであるため、メソッドを変更して単一の配列引数を受け入れることはできません。

メソッドに必要な 3 つの個別の引数に展開する単一の構成を宣言する方法はありsetFillColor()ますか?次のようなことが可能です。

$my_color = [88, 38, 123];
$myPdf->setFillColor($my_color);
4

2 に答える 2

2
define('FOO', [1, 2, 3]);

function f($a, $b, $c) {
    var_dump($a, $b, $c);
}

f(...FOO);

https://3v4l.org/EGfFNを参照してください。

古いバージョンの PHP を使用しているためにこの...演算子を使用できない場合は、以下も使用できcall_user_func_arrayます。

call_user_func_array([$myPdf, 'setFillColor'], MY_COLOR)

PHP バージョン < 7 では、定数を配列に設定することはできません。代わりに変数を使用する必要があります。

于 2016-12-21T13:23:58.663 に答える