PHP 함수 매개변수 전달을 최적화하는 방법에 대한 실용적인 팁

伊谢尔伦
풀어 주다: 2023-03-11 14:22:01
원래의
1366명이 탐색했습니다.

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 함수 매개변수 전달 방식의 개선은 여전히 ​​단점이 있으며, 코드의 양이 많아져 프로그래머가 더 많은 키 값을 작성해야 하고,

판단문도 있습니다. function삼항 연산 문은 효율성에 영향을 미칠 수 있습니다.

위 내용은 PHP 함수 매개변수 전달을 최적화하는 방법에 대한 실용적인 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿