php 函數(shù)使用可變數(shù)量的參數(shù)方法
php在用戶自定義函數(shù)中支持可變數(shù)量的參數(shù)列表。
在php5.5及更早的版本中,使用func_num_args(), func_get_arg(), func_get_args()函數(shù)實(shí)現(xiàn)。
<?php
function myfunc(){
// 獲取參數(shù)數(shù)量
echo func_num_args().PHP_EOL;
// 獲取第一個(gè)參數(shù)的值:
print_r(func_get_arg(0));
echo PHP_EOL;
// 獲取所有參數(shù)的值
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及以上的版本中,可以使用…語法實(shí)現(xiàn)。
例子1: 使用…$args代替任意數(shù)量參數(shù)
<?php
function myfunc(...$args){
// 獲取參數(shù)數(shù)量
echo count($args).PHP_EOL;
// 獲取第一個(gè)參數(shù)的值:
print_r($args[0]);
echo PHP_EOL;
// 獲取所有參數(shù)的值
print_r($args);
echo PHP_EOL;
}
myfunc('a');
myfunc(1, 2, 3);
myfunc(array('d','e'), array('f'));
?>
輸出結(jié)果與php5.5使用func_num_args(), func_get_arg(), func_get_args()函數(shù)一致。
例子2: 數(shù)組轉(zhuǎn)為參數(shù)列表
<?php
function add($a, $b){
echo $a + $b;
}
$args = array(1, 2);
add(...$args); // 輸出3
?>
例子3: 部分參數(shù)指定,其他參數(shù)數(shù)量不定
<?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 函數(shù)使用可變數(shù)量的參數(shù)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
php+resumablejs實(shí)現(xiàn)的分塊上傳 斷點(diǎn)續(xù)傳功能示例
這篇文章主要介紹了php+resumablejs實(shí)現(xiàn)的分塊上傳 斷點(diǎn)續(xù)傳功能,結(jié)合實(shí)例形式分析了php+resumablejs文件傳輸?shù)木唧w實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-04-04
php和html的區(qū)別點(diǎn)詳細(xì)總結(jié)
在本篇文章里小編給大家整理了關(guān)于php和html的區(qū)別點(diǎn),有需要的朋友們可以參考下。2019-09-09
Linux下CoreSeek及PHP擴(kuò)展模塊的安裝
前提條件是系統(tǒng)己安裝完成apache mysql php的WEB服務(wù)。我是以yum來安裝的。如果你沒有安裝過請按照下面給出的鏈接先完成基本的LAMP環(huán)境的安裝2012-09-09
一個(gè)PHP二維數(shù)組排序的函數(shù)分享
二維數(shù)組在PHP開發(fā)中經(jīng)常遇到,但是他的排序就不如一維數(shù)組那樣用內(nèi)置函數(shù)來的方便了,下面為大家詳細(xì)介紹下2014-01-01
php函數(shù)serialize()與unserialize()用法實(shí)例
這篇文章主要介紹了php函數(shù)serialize()與unserialize()用法,以實(shí)例形式詳細(xì)講述了php函數(shù)serialize()與unserialize()的適用情況與使用方法,具有很好的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11
php實(shí)現(xiàn)計(jì)數(shù)器方法小結(jié)
這篇文章主要介紹了php實(shí)現(xiàn)計(jì)數(shù)器方法,總結(jié)了三款非常實(shí)用的計(jì)數(shù)器實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01

