반응형
php는 사용자 정의 함수에서 가변 수량의 파라미터 목록을 지원한다.
php 5.5 이전 버전에서 func_num 사용_args(), func_get_arg(), func_get_args() 함수가 구현된다
<?php
function myfunc(){
// 인자 수 가져오기
echo func_num_args().PHP_EOL;
// 첫 번째 매개 변수 값 가져오기:
print_r(func_get_arg(0));
echo PHP_EOL;
// 모든 매개 변수 값 가져오기
print_r(func_get_args());
echo PHP_EOL;
}
myfunc('a');
myfunc(1, 2, 3);
myfunc(array('d','e'), array('f'));
?>
출력:
1
a
Array
(
[0] => a
)
3
1
Array
(
[0] => 1
[1] => 2
[2] => 3
)
2
Array
(
[0] => d
[1] => e
)
Array
(
[0] => Array
(
[0] => d
[1] => e
)
[1] => Array
(
[0] => f
)
)
php5.6 이상에서는 ...문법을 이용하여 구현할 수 있다.
예 1: 임의의 수의 매개 변수 대신 $args 사용
<?php
function myfunc(...$args){
// 인자 수 가져오기
echo count($args).PHP_EOL;
//첫 번째 매개 변수 값 가져오기:
print_r($args[0]);
echo PHP_EOL;
// 모든 매개 변수 값 가져오기
print_r($args);
echo PHP_EOL;
}
myfunc('a');
myfunc(1, 2, 3);
myfunc(array('d','e'), array('f'));
?>
출력 결과는 php 5.5가 func_num_args(), func_get_arg(), func_get_args() 함수를 사용하는 것과 일치한다.
예2: 배열이 매개 변수 목록으로 바뀝니다
<?php
function add($a, $b){
echo $a + $b;
}
$args = array(1, 2);
add(...$args); // 출력 3
?>
예3: 일부 파라미터 지정, 기타 파라미터 수 제한
<?php
function display($name, $tag, ...$args){
echo 'name:'.$name.PHP_EOL;
echo 'tag:'.$tag.PHP_EOL;
echo 'args:'.PHP_EOL;
print_r($args);
echo PHP_EOL;
}
display('fdipzone', 'programmer');
display('terry', 'designer', 1, 2);
display('aoao', 'tester', array('a','b'), array('c'), array('d'));
?>
출력:
name:fdipzone
tag:programmer
args:
Array
(
)
name:terry
tag:designer
args:
Array
(
[0] => 1
[1] => 2
)
name:aoao
tag:tester
args:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
)
[2] => Array
(
[0] => d
)
)
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
php 자급자족 id를 기반으로 고유 번호 클래스 만들기 (0) | 2022.09.05 |
---|---|
php 페이지나 그림이 gzip으로 압축되었는지 판단 (0) | 2022.09.05 |
php 비디오 정보를 얻기 위해 fpmpeg 호출 (0) | 2022.08.26 |
php 여러 개의 1차원 숫자를 조합하여 2차원 배열로 만드는 방법 (0) | 2022.08.25 |
php 자체 증가 ID를 기반으로 고유 번호 클래스 만들기 (0) | 2022.08.25 |