亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 36
粉絲 4
評論 3
訪問量 38377
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
7.30 PHP函數(shù)默認參數(shù)、剩余參數(shù)、匿名函數(shù)創(chuàng)建并調用外部數(shù)據(jù)
大灰狼的博客
原創(chuàng)
1557人瀏覽過

PHP函數(shù)的默認參數(shù)

定義函數(shù)形參時可以設置默認參數(shù),當函數(shù)被調用未傳參時會使用默認參數(shù)。有傳參時會優(yōu)先傳參值。

實例

<?php
//演示默認參數(shù)
//定義函數(shù)sum求和 有$a、$b 2個參數(shù)均設置了默認值5
function sum($a=5,$b=5){
	return $a+$b;
};

//函數(shù)調用 我不傳輸任何參數(shù) 但是函數(shù)會返回10 因為有2個默認參數(shù)
echo sum(),'<hr>';
//我值傳一個值 此時結果是15 參數(shù)會代替默認參數(shù) 也就是$a是10 
echo sum(10),'<hr>';
//當傳入2個值時候 分別以我傳參為優(yōu)先級最高 來計算。
echo sum(10,10),'<hr>';
//當參形參自定義后 要按照順序傳入?yún)?shù)

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例


PHP剩余參數(shù) 
可以支持部分參數(shù)以數(shù)組的方式傳入 適合有大量參數(shù)時候使用。

實例

<?php
//演示 剩余參數(shù):可變長參數(shù)
function sum3($a,$b,...$c){
	return $a+$b+array_sum($c);
};

echo sum3(5,5,10,10,10),'<hr>';

//根據(jù)剩余參數(shù)特性可以將部分參數(shù)從外部數(shù)組直接獲取
function sum4($a,$b,...$arr){
	return $a+$b+array_sum($arr);
};
$arr=[20,20,20];
echo sum4(5,5,...$arr),'<hr>';


//限制返回值  限制第一個參數(shù)為int整數(shù)  '6'運算時候會自動轉換成數(shù)字 不能轉換的會忽略不會報錯
function sum5(int $a,$b,...$arr){
	return $a+$b+array_sum($arr);
};
$arr=[6,'p6d','6lang'];
echo sum3(5,5.2,...$arr),'<hr>';

//上面數(shù)組中 雖然出現(xiàn)了 字符串 但是并不會報錯 不能轉換為數(shù)組的 只是不進行計算而已。

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例


PHP匿名函數(shù)

實例

<?php
//匿名函數(shù)

//匿名函數(shù) 函數(shù)表達式
$sum=function($a,$b){
	return $a+$b;
};
//調用輸出
echo $sum(2,3),'<hr>';

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例


PHP匿名函數(shù)獲取外部數(shù)據(jù)

實例

<?php
// 匿名函數(shù)獲取外部數(shù)據(jù)
$str='我是全局變量中的一段文字。11111';
$str2='我是全局變量中的一段文字。22222';
//在匿名函數(shù)中可以通過 use($var)將全局變量 傳值 獲得值(函數(shù)內(nèi)修改不影響全局)
$func1=function() use($str){
	$str1='我想看看外面的世界~';
	return $str;
};

echo $func1();

$str='我是全局變量中的一段文字。11111';
//在匿名函數(shù)中可以通過 use(&$var)將全局變量 引用傳遞(傳址)調用(函數(shù)內(nèi)修改影響全局)
$func2=function() use(&$str2){
	$str2='我被刁民 func2 使用了& 把我給頂替了~';
	return $str2;
};

echo $func1(),'<hr>';
echo $func2(),'<hr>';


//函數(shù)允許嵌套調用
function demo(){
	$name='大灰狼 函數(shù)嵌套調用';
	return function() use($name){
		return $name;
	};
};
//因為demo返回的是一個函數(shù) 所以得先放到一個變量中 在運行
$f1=demo();
echo $f1(),'<hr>';
//也可以簡化為
echo demo()();

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例


call_user_func_array()的常用場景

// 語法 call_user_func_array($callback, $param_arr);

常用場景如
1、需要調用的函數(shù)名是未知的;
2、要調用函數(shù)的參數(shù)類型及個數(shù)也是未知的;

實例

//實際使用

function sayEnglish($fName, $content) {
	echo 'I am ' . $content;
}

function sayChinese($fName, $A, $B) {
	echo $A . $B;
	echo "<br>";
}

function say() {
	$args = func_get_args();
	call_user_func_array($args[0], $args);
}

say('sayChinese', '我是', '中國人');
say('sayEnglish', 'Chinese');

//改進-----------------------------------------------------
echo '<hr>';
function sayEnglish2(...$arr) {
	echo 'Americans say: <pre>' .print_r($arr,true);
}

function sayChinese2(...$A) {
	echo '中國說:<pre>'.print_r($A,true);
	echo "<br>";
}

function say2($fname,...$arr) {
	call_user_func_array($fname, ...$arr);
}

say2('sayChinese2', ['我是中國人', '我不姓福','但是我日子幸福']);
say('sayEnglish2', ['Chinese','good']);
//say($funcName,$conterArr);

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例


動態(tài)調用普通函數(shù)時,比如參數(shù)和調用方法名稱不確定的時候很好用。
函數(shù)名可以用參數(shù)的方式傳遞進去,因而調用不同函數(shù)。 配合func_get_args()或剩余參數(shù) 接收參數(shù)到數(shù)組中,參數(shù)的個數(shù)也可以不一致。

不需要判斷函數(shù)類型,無論是普通函數(shù),類的靜態(tài)方法或者類的方法,均直接調用,不用去判斷方法的類型。

批改狀態(tài):合格

老師批語:php中的函數(shù)知識還有很多, 更多可以查閱官方手冊
本博文版權歸博主所有,轉載請注明地址!如有侵權、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務協(xié)議
0條評論
作者最新博文
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學習!
    全站2000+教程免費學