変数の一括セット

変数をセットする際には
set, setBoolean, setInt, setFloat, setNumber, setAlphanum, setWord
(以下、set 系メソッド)を使用するわけですが、
たとえば、GET や POST で多数の入力データを受け取る場合、
それらをひとつひとつセットするのは面倒です。

そこで、連想配列から
複数のデータを一度にセットするためのメソッドが用意されています。 $ramp->setFromArray(array);
$ramp->setBooleanFromArray(array);
$ramp->setIntFromArray(array);
$ramp->setFloatFromArray(array);
$ramp->setNumberFromArray(array);
$ramp->setAlphanumFromArray(array);
$ramp->setWordFromArray(array);

たとえば、次のように使用します。 // たとえば、次のような連想配列をセットする場合。
$vals = array(
     "key1" => "val1"
    ,"key2" => "val2"
    ,"key3" => "val3"
);

// setFromArray を使えば、
// $vals のすべてのキーと値のペアが一括してセットされる。

$ramp->setFromArray($vals);

// 上の処理は、以下の処理をしているのと同じ。
$ramp->set("key1", $vals["key1"]);
$ramp->set("key2", $vals["key2"]);
$ramp->set("key3", $vals["key3"]);

セットするキーを指定する

第二引数以降でキーを指定することで、
連想配列の指定したキーと値のペアだけをセットできます。 $ramp->setFromArray(array, key1, key2, key3...);
$ramp->setBooleanFromArray(array, key1, key2, key3...);
$ramp->setIntFromArray(array, key1, key2, key3...);
$ramp->setFloatFromArray(array, key1, key2, key3...);
$ramp->setNumberFromArray(array, key1, key2, key3...);
$ramp->setAlphanumFromArray(array, key1, key2, key3...);
$ramp->setWordFromArray(array, key1, key2, key3...);

たとえば、次のように使用します。 // たとえば、次のような連想配列をセットする場合。
$vals = array(
     "key1" => "val1"
    ,"key2" => "val2"
    ,"key3" => "val3"
    ,"key4" => "val4"
    ,"key5" => "val5"
    ,"key6" => "val6"
);

// "key1" と "key2" はint値としてセット。
$ramp->setIntFromArray($vals, "key1", "key2");

// "key3", "key4", "key5" は英数字としてセット。
$ramp->setAlphanumFromArray($vals, "key3", "key4", "key5");

// "key6" はそのままにセット。
$ramp->setFromArray($vals, "key6");

// 上の処理は、以下の処理をしているのと同じ。
$ramp->setInt("key1", $vals["key1"]);
$ramp->setInt("key2", $vals["key2"]);
$ramp->setAlphanum("key3", $vals["key3"]);
$ramp->setAlphanum("key4", $vals["key4"]);
$ramp->setAlphanum("key5", $vals["key5"]);
$ramp->set("key6", $vals["key6"]);
すなわち、セットするキーの指定を省略すると、
すべてのキーを指定するのと同じになります。

文字数の制限

setFromArray 系のメソッドは、
指定するキーの数によって引数の数が変動するので
「文字数の制限」のための引数を指定できません。
そこで、setLength を使用します。

$ramp->setLength(length);
$ramp->setLength(length, key1, key2, key3...);
第一引数に文字数を指定します。
第二引数以下は、文字数を制限するキーを指定します。
setFromArray系のメソッドと同様、
キーの指定を省略すると、すべてのキーが指定されます。

// たとえば、次のような連想配列をセットする場合。
$vals = array(
     "key1" => "abcdefg"
    ,"key2" => 123456789
    ,"key3" => "あいうえおかきくけこ"
);
$ramp->setFromArray($vals);

// 次の例では、セットされたすべての値が5文字に制限される。
// したがって、"key1" の値は "abcde",
// "key2" の値は 12345,
// "key3" の値は "あいうえお" となる。

$ramp->setLength(5);

// 次の例では、"key1" と "key2" の値を3文字に制限する。
// したがって、"key1" の値は "abc",
// "key2" の値は 123 となる。

$ramp->setLength(3, "key1", "key2");

// 上の処理は、以下の処理をしているのと同じ。
$ramp->set("key1", $vals["key1"], 3);
$ramp->set("key2", $vals["key2"], 3);
$ramp->set("key3", $vals["key3"], 5);

setLength は、setFromArray系のメソッドだけでなく、
set系のメソッドでセットしたデータにも適用されます。
(キーの指定を省略する際には、ご注意ください)

補足

setFromArray 系のメソッドでキーをひとつだけ指定するのと
set 系のメソッドとは結果的には同じですが、
set 系のメソッドのほうが処理効率は優れています。