PHP 関数パラメータの受け渡しを最適化する方法に関する実践的なヒント

伊谢尔伦
リリース: 2023-03-11 14:22:01
オリジナル
1352 人が閲覧しました

PHP コードを作成するとき、コードに対して複数のアップグレードや変更を行う必要があることがよくありますが、このようなパラメーターの変更を継続的に繰り返すと、プログラム全体のパフォーマンスが低下し、作業負荷が増加します。今日は、配列を使用して PHP 関数のパラメーターを渡す方法を紹介します :

まず伝統的な カスタム関数を見てみましょう

/**  
* @Purpose:     插入文本域  
* @Method Name: addInput()  
* @Parameter:    str $title        表单项标题  
* @Parameter:    str $name        元素名称  
* @Parameter:    str $value        默认值  
* @Parameter:    str $type        类型,默认为text,可选password  
* @Parameter:    str $maxlength        最长输入  
* @Parameter:    str $readonly        只读  
* @Parameter:    str $required        是否必填,默认为false,true为必填  
* @Parameter:    str $check        表单验证function(js)名称  
* @Parameter:    str $id            元素id,无特殊需要时省略  
* @Parameter:    int $width        元素宽度,单位:象素  
* @Parameter:    str $tip        元素提示信息  
* @Return:        
*/  
function addInput($title,$name,$value="",$type="text",$maxlength="255",$readonly,$required="false",$check,$id,$width,$tip)  
{  
    $this->form .= "<li>\n";  
    $this->form .= "<label>".$title.":</label>\n";  
    $this->form .= "<input name=\"".$name."\" value=\"".$value."\" type=\"".$type."\" 
                     maxlength=\"".$maxlength."\" required=\"".$required."\" check=\"".$check."\" 
                     id=\"".$id."\" class=\"input\" ".$readonly." style=\"width:".$width."px;\" showName=\"".$title."\" /> ";  
    $this->form .= "<span class=\"tip\">".$tip."</span>\n";  
    $this->form .= "</li>\n";  
}
ログイン後にコピー

PHP 関数のパラメーターを渡すメソッドの呼び出しメソッドは、最初に

$form->addInput("编码","field0","","text",3,"");
ログイン後にコピー

です$title、$name、$value、$type、$maxlength、$readonly およびその他のパラメーターのみが予約されています。一定期間使用した後、これらの基本パラメーターは JS 検証と CSS を必要としないことが判明しました。スタイルを定義する必要があります。プロンプト情報を追加する必要があります...

$required、$check、$id、$width、$tip およびその他のパラメーターを追加した後、この関数に対する以前のすべての呼び出しを変更する必要があることがわかりました。

PHP 関数パラメータ引き渡しメソッドの呼び出しメソッドは

$form->addInput("编码","field0","","text",3,"","true",""
,"",100,"提示:编号为必填项,只能填写3位");
ログイン後にコピー

になります 以下は改良された関数です

function addInput($a)  
{  
    if(is_array($a))  
    {  
        $title        = $a[&#39;title&#39;];  
        $name        = $a[&#39;name&#39;];  
        $value        = $a[&#39;value&#39;] ? $a[&#39;value&#39;] : "";  
        $type        = $a[&#39;type&#39;] ? $a[&#39;type&#39;] : "text";  
        $maxlength    = $a[&#39;maxlength&#39;] ? $a[&#39;maxlength&#39;] : "255";  
        $readonly    = $a[&#39;readonly&#39;] ? $a[&#39;readonly&#39;] : "";  
        $required    = $a[&#39;required&#39;] ? $a[&#39;required&#39;] : "false";  
        $check        = $a[&#39;check&#39;];  
        $id        = $a[&#39;id&#39;];  
        $width        = $a[&#39;width&#39;];  
        $tip        = $a[&#39;tip&#39;];  
    }  
    $title,$name,$value="",$type="text",$maxlength="255",$readonly,$required="false",$check,$id,$width,$tip  
    $this->form .= "<li>\n";  
    $this->form .= "<label>".$title.":</label>\n";  
    $this->form .= "<input name=\"".$name."\" value=\"".$value."\" type=\"".$type."\" 
             maxlength=\"".$maxlength."\" required=\"".$required."\" check=\"".$check."\" 
             id=\"".$id."\" class=\"input\" ".$readonly." style=\"width:".$width."px;\" showName=\"".$title."\" /> ";  
    $this->form .= "<span class=\"tip\">".$tip."</span>\n";  
    $this->form .= "</li>\n";  
}
ログイン後にコピー

呼び出しメソッドは

$form->addInput(  
    array(  
        &#39;title&#39; = "编码",  
        &#39;name&#39; = "field0",  
        &#39;maxlength&#39; = 3,  
        &#39;required&#39; = "true",  
        &#39;width&#39; = 100,  
        &#39;tip&#39; = "提示:编号为必填项,只能填写3位",  
    )  
);
ログイン後にコピー

になります 以前とPHP関数パラメータ引き継ぎメソッドを比較すると、

従来の関数を拡張する必要がある場合 変更量が多い場合、パラメータの順序で記述する必要があり、間違いが発生しやすい場合

改良された機能が拡張され、呼び出し時に対応する配列キー値を追加するだけでいつでも新しいパラメータを追加でき、各パラメータが一目でわかるため、順序や可読性を考慮する必要がありません。コードは強化されました

しかし、PHP関数のパラメータの受け渡し方法の改善にはまだ欠点があり、プログラマがより多くのキー値を記述する必要があり、関数内に判定文が含まれています。 三項演算ステートメントは効率に影響を与える可能性があります。

以上がPHP 関数パラメータの受け渡しを最適化する方法に関する実践的なヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート