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

搜索
博主信息
博文 18
粉絲 0
評(píng)論 0
訪問量 14915
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
210428 PHP 函數(shù) 返回值 參數(shù) 閉包/匿名函數(shù)
xyphpblog
原創(chuàng)
1414人瀏覽過

1. 函數(shù)

function 函數(shù)名(參數(shù)類型:可選,參數(shù)):返回值類型限定
{
函數(shù)體
return 返回值(返回任意類型,單個(gè)值,之后代碼不會(huì)執(zhí)行);
}

  1. //無(wú)返回值
  2. function f1()
  3. {
  4. return md5("abc");
  5. }
  6. echo f1(), "<hr>";

2. 函數(shù)返回值

2.1 返回指定類型

  1. //返回指定類型
  2. function f2($a, $b): int
  3. {
  4. return $a + $b;
  5. }
  6. echo f2(1.1, 2.2), "<hr>"; //3

2.2 返回?cái)?shù)組

  1. //返回?cái)?shù)組
  2. function f3(): array
  3. {
  4. return ['name' => 'Em', 'age' => 18];
  5. }
  6. $arr = f3();
  7. print_r($arr); //Array ( [name] => Em [age] => 18 )
  8. echo '<hr>';

2.3 返回對(duì)象

  1. //返回對(duì)象 以匿名類返回
  2. function f4(): object
  3. {
  4. return new class
  5. {
  6. public $id = '0001';
  7. public $gender = 'male';
  8. };
  9. }
  10. $user = f4();
  11. var_dump($user);
  12. //object(class@anonymous)#1 (2) { ["id"]=> string(4) "0001" ["gender"]=> string(4) "male" }
  13. //訪問對(duì)象屬性
  14. echo $user->gender; //male
  15. echo '<hr>';

2.4 返回JSON字符串

  1. //返回JSON字符串
  2. function f5(): string
  3. {
  4. global $arr;
  5. return json_encode($arr);
  6. }
  7. $jsonStr = f5();
  8. echo $jsonStr; // {"name":"Em","age":18}
  9. //解析JSON字符串,還原成PHP可以處理的數(shù)據(jù)類型
  10. $jd = json_decode($jsonStr);
  11. var_dump($jd);
  12. //object(stdClass)#2 (2) { ["name"]=> string(2) "Em" ["age"]=> int(18) }
  13. //JSON字符串解析為數(shù)組
  14. $jd = json_decode($jsonStr, true);
  15. var_dump($jd);
  16. //array(2) { ["name"]=> string(2) "Em" ["age"]=> int(18) }

2.5 序列化字符串

  1. //返回 序列化字符串
  2. function f6()
  3. {
  4. global $arr;
  5. return serialize($arr);
  6. }
  7. echo f6();
  8. //a:2:{s:4:"name";s:2:"Em";s:3:"age";i:18;}
  9. file_put_contents('f6.txt', f6());
  10. //反序列化
  11. var_dump(unserialize(f6()));
  12. //array(2) { ["name"]=> string(2) "Em" ["age"]=> int(18) }

3. 參數(shù)

3.1 普通帶參數(shù)函數(shù)

  1. # 循環(huán)創(chuàng)建表格
  2. function createTable(int $row, int $col)
  3. {
  4. $table = "<table border='1' cellspacing='0'>";
  5. for ($i = 0; $i < $row; $i++) {
  6. $table .= "<tr>";
  7. for ($j = 0; $j < $col; $j++) {
  8. $table .= "<td>1</td>";
  9. }
  10. $table .= "</tr>";
  11. }
  12. $table .= "</table>";
  13. return $table;
  14. }
  15. echo createTable(2, 3), '<hr>';

3.2 參數(shù)有默認(rèn)值

  1. // 參數(shù)有默認(rèn)值
  2. function createTable2(int $row = 2, int $col = 2)
  3. {
  4. $table = "<table border='1' cellspacing='0'>";
  5. for ($i = 0; $i < $row; $i++) {
  6. $table .= "<tr>";
  7. for ($j = 0; $j < $col; $j++) {
  8. $table .= "<td>1</td>";
  9. }
  10. $table .= "</tr>";
  11. }
  12. $table .= "</table>";
  13. return $table;
  14. }
  15. echo createTable2(), '<hr>';

3.3 參數(shù)部分有默認(rèn)值,部分沒有默認(rèn)值

  1. // 參數(shù)部分有默認(rèn)值,部分沒有默認(rèn)值
  2. function createTable3(int $row, int $col, string $bgcolor = "lightblue", string $text = '?')
  3. {
  4. $table = "<table border='1' cellspacing='0' bgcolor={$bgcolor}>";
  5. for ($i = 0; $i < $row; $i++) {
  6. $table .= "<tr>";
  7. for ($j = 0; $j < $col; $j++) {
  8. $table .= "<td>{$text}</td>";
  9. }
  10. $table .= "</tr>";
  11. }
  12. $table .= "</table>";
  13. return $table;
  14. }
  15. echo createTable3(5, 6), '<hr>';

3.4 引用參數(shù)

  1. // 引用參數(shù)
  2. function fo(&$p)
  3. {
  4. return $p .= $p;
  5. }
  6. $v1 = '?';
  7. echo fo($v1), '<br>';
  8. echo $v1, '<hr>';

3.5 剩余參數(shù)

  1. # 剩余參數(shù)
  2. function getSum(...$params)
  3. {
  4. return array_sum($params);
  5. }
  6. $arr = [1, 2, 3, 4, 5];
  7. echo getSum(...$arr), '<hr>'; //15
  8. echo getSum(1, 2, 3); //6

4. 閉包/匿名函數(shù)

  1. <?php
  2. # 匿名函數(shù) 閉包
  3. $closure = function ($name) {
  4. return 'name: ' . $name;
  5. };
  6. echo $closure('Em'), '<br>'; // name: Em
  7. # 閉包通過use 可以訪問函數(shù)外部的自由變量/父作用域中的變量
  8. $name = 'Em';
  9. $age = 22;
  10. $closure2 = function () use ($name, $age) {
  11. return sprintf('name: %s <br> age: %d', $name, $age);
  12. };
  13. echo $closure2(), '<br>';
  14. //name: Em
  15. //age: 22
  16. #閉包通過use引用傳遞
  17. $closure3 = function ($newAge) use (&$age) {
  18. $age = $newAge;
  19. };
  20. $closure3(18);
  21. echo $age, '<br>'; //18
  22. #閉包常用作函數(shù)返回值
  23. function foo($animal)
  24. {
  25. return function ($sound) use ($animal) {
  26. return sprintf('%s: %s', $animal, $sound);
  27. };
  28. }
  29. echo foo('?')('meow~');

批改老師:滅絕師太滅絕師太

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

老師批語(yǔ):總結(jié)的很好, 你是怎么輸出可愛的小表情的呢
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

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

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