>  기사  >  백엔드 개발  >  PHP 변수 매개변수 사용의 기본 예

PHP 변수 매개변수 사용의 기본 예

怪我咯
怪我咯원래의
2017-06-28 09:48:531256검색

이 글은 주로 PHP를 배우는 초보자를 대상으로 하므로 구체적인 예를 들어 설명하겠습니다.

먼저 두 숫자의 합을 계산하려면 PHP 함수를 작성해야 합니다. 이는 다음과 같이 작성할 수 있습니다.

/**
 *计算两个数的和,并返回计算的结果
 * @param number $a
 * @param number $b
 * @return number
 */
function sum($a, $b){
    return $a + $b;
}

마찬가지로, 세 숫자의 합을 계산해야 하는 경우 다음과 같이 작성할 수 있습니다. :

/**
 *计算两个或三个数的和,并返回计算的结果
 * @param number $a
 * @param number $b
 * @return number $c 该参数可以不传入值,默认为0
 */
function sum($a, $b, $c = 0){
    return $a + $b + $c;
}

이때, 숫자의 합을 계산해야 한다면 PHP 함수는 어떻게 작성해야 할까요?

물론, 이러한 기능을 달성하기 위해 함수의 전달 매개변수로 배열을 사용하는 것을 고려할 수도 있습니다.

/**
 *计算任意多个数的和,函数参数params必须为array类型
 * @param array params
 */
function sum($params){
    $total = 0;
    foreach ($params as $i){
        $total += $i;
    }
    return $total;
}

글쎄요, 이 접근 방식에는 실제로 아무런 문제가 없습니다. 왜냐하면 변수 매개변수가 탄생하기 전의 프로그램 개발 과정이기 때문입니다. 에서 전달해야 하는 매개변수 수에 관계없이 배열이나 기타 유사한 컬렉션으로 표시됩니다. 하지만 이런 전달 방식은 충분히 명확하고 직관적이지 않나요? PHP 프로그래머라면 PHP에 변수에 대한 자세한 정보를 표시하는 var_dump() 함수가 있다는 것을 알아야 합니다. 예:

$age = 18;
var_dump($age); //显示变量$age的详细信息

여러 변수에 대한 정보를 표시해야 하는 경우 다음과 같이 사용할 수도 있습니다.

$name = '张三';
$age = 18;
$gender = true;
var_dump($name, $age, $gender);

우리는 var_dump()가 동시에 여러 변수를 받을 수 있고 배열 형식으로 전달할 필요가 없다는 것을 알고 있습니다. 이 매개 변수 전달 방법은 더 직관적이고 우아합니다. 이러한 방식으로 매개변수를 여러 개 전달하는 방식을 가변 매개변수라고 합니다. 물론 sum() 함수는 다음과 같은 방식으로 구현할 수도 있습니다:

/**
 *计算任意多个数的和,并返回计算后的结果
 */
function sum(){  //这里的括号中没有定义任何参数
    $total = 0;
    //使用func_get_args()来获取当前函数的所有实际传递参数,返回值为array类型
    $varArray = func_get_args();
    foreach ($varArray as $var){
        $total += $var;
    }
    return $total;
}

/*****下面是调用示例*****/
echo sum(1, 3, 5);  //计算1+3+5
echo sum(1, 2); //计算1+2
echo sum(1, 2, 3, 4);   //计算1+2+3+4

위의 예에서 볼 수 있듯이 현재 함수에서 PHP내장 함수func_get_args()를 사용하는 한 다음과 같은 경우에 전달할 수 있습니다. 실제 매개변수 배열 함수를 호출하면 매개변수 배열만 처리하면 됩니다.

참고 1: 1. 호출 시 매개변수가 전달되지 않으면 func_get_args() 함수는 여전히 배열 유형을 반환하지만 빈 배열(배열에는 요소가 포함되지 않음)이 반환됩니다. 2.func_get_args()는 함수 내에서만 호출할 수 있습니다. 그렇지 않으면 경고 메시지가 표시됩니다. 3. func_get_args() 함수는 인덱스 매개변수를 수신하여 매개변수 배열의 지정된 인덱스에 있는 매개변수를 얻을 수 있습니다. 예를 들어, 첫 번째 인수를 전달하려면 func_get_args(1)를 호출하면 됩니다. 4. 또한 함수에서 func_num_args()를 호출할 수도 있으며, 이는 현재 함수 호출에 전달된 매개변수 수를 반환할 수 있습니다.

참고 2: PHP의 변수 매개변수 구현은 JavaScript의 변수 매개변수 구현과 매우 유사합니다. PHP는 이를 구현하기 위해 내장 함수 func_get_args()를 사용하고 JavaScript는 내장 함수 를 사용합니다. 이를 구현하기 위한 가변 인수.

참고 3: 최종 sum() 함수 코드에서 sum() 함수는 형식 매개변수를 정의하지 않으므로 이 함수 호출 시 0, 1, 2~n 매개변수를 전달할 수 있습니다. 그러나 일반적으로 합계를 계산하려면 최소한 두 개의 숫자가 필요합니다. 따라서 sum() 함수 정의에서 두 가지 형식 매개변수(예: sum($a, $b))를 정의할 수 있으며 다른 코드는 변경되지 않습니다. 이런 방식으로 이 함수를 호출할 때 최소한 두 개의 매개변수를 전달해야 합니다.

참고 4: PHP에는 배열의 모든 요소의 합을 계산하는 내장 함수 array_sum()이 있으므로 위 코드의 최종 버전은 다음과 같습니다.

/**
 *计算任意多个数的和,并返回计算后的结果
 */
function sum($a, $b){
    return array_sum(func_get_args());
}

위 내용은 PHP 변수 매개변수 사용의 기본 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.