PHPの引数の渡し方についてのメモ

PHP連想配列が使えるので、関数の定義を

function func ($p) {
  if ( isset($p["parameterA"]) ) $varA= $p["parameterA"];
  if ( isset($p["parameterB"]) ) $varB= $p["parameterB"];
  ...
}

と書き、関数の呼出を

$returnValue= func(array(
    "parameterA" => [value of A]
   ,"parameterB" => [value of B]
  ...
)};

と書くこともできる。こう書くと関数の呼出側に関数定義の変数名を引っ張ってこれるから、呼出側のソースコードを見るだけで、どの目的の変数に何の値を代入しているかが分かるので便利。しばらく前にこんな呼出のスクリプトを書いた

$g= new useGnuplot;
$g->gnuplotDrawSpectra(array(
  "spectrum"      =>"rotUxB_B" // [必須] 描くスペクトルの種類
 ,"time"          =>"1.00" // [default] 全ての時刻のグラフをプロット
 ,"normalization" => "Mag" // [default] 規格化なし
 ,"setXrange"     => "[0.005:3]"     // [default] gnuplot におまかせ
 ,"setYrange"     => "[0.0001:2000]" // [default] gnuplot におまかせ
 ,"setLogscaleX"  => TRUE
 ,"setLogscaleY"  => TRUE
 ,"setSizeMark"   => 0.1
));

引数の数をなし崩しにできてしまうので、設計が当初の目論見から変わったときには便利かもしれない。