[PHP-users 2433] Re: 関数への引数の制限は?
Kentaro Fujinuma
php-users@php.gr.jp
Wed, 3 Oct 2001 17:37:09 +0900
藤沼@イイガです。
<CC14BDD89F48Fseto@cii.gr.jp> の、
"[PHP-users 2432] Re: 関数への引数の制限は?" において、
"Seto <seto@cii.gr.jp>"さんは書きました:
> 水迫さん疑問の本質と外れてしまいますが
> 関数呼び出しの引数に連想配列をつかわれてはどうでしょうか。
あるいは引数となるデータを保持するクラスを定義するという手段も
あるかもしれません。$word{N} に保持させたいデータ形式に制限を
加えたい場合にはこの方式が適していると思います。
関数用ファイル:func.php
class HogeContainer {
var $word1;
:
:
var $word100;
// 引数の制約を記述
// 例えば word1 は整数でないといけないとか
function setWord1($word1) {
if (is_int($word1)) {
$this->word1 = $word1;
} else {
// エラー処理
}
}
:
:
}
function hogehoge($hogeArg) {
// Polymorphism がサポートされてないのは不便だなあ・・・
if (is_object($hogeArg) && get_class($hogeArg) == "HogeContainer") {
// 何らかの処理
return $result;
} else {
// エラー処理
}
}
利用するファイル:body.php
include 'func.php';
$aHogeArgs = new HogeContainer();
$aHogeArgs->setWord1("*******");
・
・
$aHogeArgs->setWord100("*******");
$result_data = hogehoge($aHogeArgs);
> コーディングもすっきりすると思いますが。
引数が 100 もあると可読性が著しく悪化しそうですね。
それではよろしくお願いします。
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Kentaro Fujinuma / IIGA Co., Ltd. / Network Administrator
Contact: E-mail: fuji@iiga.co.jp
Tel: 03-5296-0389 / Fax: 03-5296-0386
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-