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及以上的版本中,可以使用…語(yǔ)法實(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ù)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
PHP實(shí)現(xiàn)HTTP斷點(diǎn)續(xù)傳的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)HTTP斷點(diǎn)續(xù)傳的方法,實(shí)例分析了php基于http協(xié)議斷點(diǎn)續(xù)傳下載文件的實(shí)現(xiàn)方法,需要的朋友可以參考下2015-06-06簡(jiǎn)介PHP的Yii框架中緩存的一些高級(jí)用法
這篇文章主要介紹了PHP的Yii框架中緩存的一些高級(jí)用法,包括頁(yè)面緩存與會(huì)話緩存限制器等內(nèi)容,需要的朋友可以參考下2016-03-03用PHP控制用戶的瀏覽器--ob*函數(shù)的使用說(shuō)明
用PHP控制用戶的瀏覽器--ob*函數(shù)的使用說(shuō)明...2007-03-03php實(shí)現(xiàn)的錯(cuò)誤處理封裝類實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)的錯(cuò)誤處理封裝類,結(jié)合具體實(shí)例形式分析了php錯(cuò)誤判斷、提示及日志相關(guān)操作技巧,需要的朋友可以參考下2017-06-06PHP預(yù)防SQL注入、CSRF和XSS攻擊的常見(jiàn)措施
在開(kāi)發(fā) PHP 應(yīng)用程序時(shí),確保應(yīng)用程序的安全性至關(guān)重要,SQL 注入、CSRF(跨站請(qǐng)求偽造)和 XSS(跨站腳本攻擊)是一些常見(jiàn)的安全威脅,本文給大家介紹了PHP預(yù)防SQL注入、CSRF和XSS攻擊的常見(jiàn)措施,需要的朋友可以參考下2023-11-11PHP使用OCR技術(shù)識(shí)別圖片中的文字(無(wú)需接口)
tesseract-ocr是一個(gè)流行的開(kāi)源OCR引擎庫(kù),它使用C++編寫,?PHP作為一種流行的服務(wù)器端語(yǔ)言,也提供了一些ocr識(shí)別的庫(kù)和工具,可以通過(guò)tesseract-ocr識(shí)別PDF、JPEG、GIF、PNG等格式的圖像,?tesseract-ocr的最大特點(diǎn)是它是針對(duì)多語(yǔ)言設(shè)計(jì)的,可以識(shí)別世界上大部分語(yǔ)言的文本2024-04-04