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

搜索
博主信息
博文 13
粉絲 1
評論 0
訪問量 19029
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
函數(shù)知識點歸納
樊天龍的博客
原創(chuàng)
1055人瀏覽過

函數(shù)知識點歸納

1.函數(shù)的聲明和調(diào)用

  1. <?php
  2. //函數(shù)的聲明
  3. //形式參數(shù)可以在前面限定數(shù)據(jù)類型,返回值在圓括號后面":返回數(shù)據(jù)類型"
  4. //function 函數(shù)名(形式參數(shù)列表)
  5. //{
  6. // //函數(shù)體
  7. //}
  8. //函數(shù)的調(diào)用
  9. //函數(shù)名(實際參數(shù)列表);
  10. //獲取兩個字符串拼接后的字符串
  11. function show(string $str1, string $str2): string
  12. {
  13. return $str1 . '&nbsp;' . $str2;
  14. }
  15. echo show('hello', 'world');

2.函數(shù)的分類

序號 名稱 描述
1 自定義函數(shù) 程序員自己定義的函數(shù)
2 系統(tǒng)函數(shù) PHP內(nèi)置的函數(shù)
3 可變函數(shù) 變量名當做函數(shù)名
4 匿名函數(shù) 函數(shù)名保存到變量中
  1. <?php
  2. //函數(shù)的分類
  3. //1.自定義函數(shù)
  4. //之前的兩個字符串拼接的例子就是一個自定義函數(shù)
  5. //2.系統(tǒng)函數(shù)
  6. //獲取當前的日期時間
  7. echo date('Y年m月d日 H:i:s');
  8. echo '<hr>';
  9. //3.可變函數(shù):和可變變量類似
  10. $name = 'display';
  11. function display()
  12. {
  13. return 'hello world';
  14. }
  15. //變量名等價于函數(shù)名
  16. echo $name();
  17. echo '<hr>';
  18. //4.匿名函數(shù),也叫閉包,指沒有函數(shù)名的函數(shù)
  19. //匿名函數(shù)可以使用"use()"訪問父作用域的變量
  20. $str = 'world';
  21. $name = function () use ($str): string {
  22. return 'hello ' . $str;
  23. };
  24. echo $name();

3.函數(shù)的返回值

序號 類型 描述
1 單值返回 只返回一個值
2 字符串返回 采用字符串拼接的方式返回多個值,是最簡單的一種
3 返回數(shù)組 將需要返回的多個值放到數(shù)組中,返回數(shù)組
4 json返回 通用的序列化方式,適用多門語言
5 PHP序列化 只適用于PHP
  1. <?php
  2. //函數(shù)的返回值
  3. //原則單值返回
  4. //如果返回多值:
  5. //1.字符串拼接
  6. function test1()
  7. {
  8. return 'hello ' . 'world';
  9. }
  10. echo test1();
  11. echo '<hr>';
  12. //2.數(shù)組方式返回
  13. function test2()
  14. {
  15. return [
  16. 'status' => 1,
  17. 'message' => '成功'
  18. ];
  19. }
  20. echo '<pre>' . print_r(test2(), true) . '</pre>';
  21. echo '<hr>';
  22. //3.json方式返回
  23. //json:js對象簡譜,是一種數(shù)據(jù)交換格式,早期為XML
  24. //json就是js對象的字符串表示,只不過鍵必須加上雙引號
  25. //序列化:是指將對象的狀態(tài)信息轉(zhuǎn)化為可以存儲和傳輸?shù)母袷降倪^程
  26. //json就是序列化的一種,是通用的序列化格式
  27. function test3()
  28. {
  29. //json編碼
  30. return json_encode([
  31. 'status' => 1,
  32. 'message' => '成功'
  33. ]);
  34. }
  35. $str = test3();
  36. //json解碼
  37. print_r(json_decode($str, true));
  38. echo '<hr>';
  39. //4.PHP序列化
  40. //在PHP中有專門的序列化函數(shù),只在PHP有效
  41. $str = serialize([
  42. 'status' => 1,
  43. 'message' => '成功'
  44. ]);
  45. echo $str;
  46. //PHP反序列化
  47. echo '<pre>' . print_r(unserialize($str), true) . '</pre>';

4.函數(shù)的參數(shù)類型

序號 類型 描述
1 按值傳遞 函數(shù)中改變值與原值無關
2 引用傳遞 函數(shù)中改變值與原值有關,相當于齊了一個別名
3 默認值 在不傳遞實參的情況下,使用默認值;默認值從右向左指定
4 剩余參數(shù) 在形參和實參不確定個數(shù)的情況下非常有用
  1. <?php
  2. //函數(shù)的參數(shù)類型
  3. //1.按值傳遞
  4. function test1(float $value): string
  5. {
  6. return $value *= 2;
  7. }
  8. $value = 100;
  9. echo '改變后的值:', test1($value);
  10. echo '<br>';
  11. echo '原值:', $value;
  12. echo '<hr>';
  13. //2.引用傳遞,相當于起了一個別名
  14. function test2(float &$value): string
  15. {
  16. return $value *= 2;
  17. }
  18. $value = 100;
  19. echo '改變后的值:', test2($value);
  20. echo '<br>';
  21. echo '原值:', $value;
  22. echo '<hr>';
  23. //3.默認值,默認值從右向左指定
  24. function test3(float $num1, float $num2, $op = '+'): string
  25. {
  26. //判斷運算符
  27. switch ($op) {
  28. case '+':
  29. $result = $num1 . '+' . $num2 . '=' . ($num1 + $num2);
  30. break;
  31. case '-':
  32. $result = $num1 . '-' . $num2 . '=' . ($num1 - $num2);
  33. break;
  34. case '*':
  35. $result = $num1 . '*' . $num2 . '=' . ($num1 * $num2);
  36. break;
  37. case '/':
  38. $result = $num1 . '/' . $num2 . '=' . ($num1 / $num2);
  39. break;
  40. default:
  41. $result = '非法的運算符';
  42. }
  43. return $result;
  44. }
  45. echo test3(10, 40), '<br>';
  46. echo test3(10, 40, '*');
  47. echo '<hr>';
  48. //4.剩余參數(shù):如果參數(shù)很多個,就寫很多個形式參數(shù),不太利于開發(fā),這時就可以用剩余參數(shù)
  49. //func_get_arg():獲取實參列表中的某一個索引值
  50. //func_get_args():獲取實參列表值的數(shù)組
  51. //func_num_args():獲取實參列表值的個數(shù)
  52. //實現(xiàn)輸入的數(shù)值的累加和
  53. function test4() : float
  54. {
  55. //初始化計數(shù)器
  56. $total = 0;
  57. //for循環(huán)實現(xiàn)累加功能
  58. for ($i = 0; $i < func_num_args(); $i++) {
  59. $total += func_get_arg($i);
  60. }
  61. return $total;
  62. }
  63. echo test4(10, 20, 30, 40);
  64. echo '<br>';
  65. function test5() : float
  66. {
  67. //初始化計數(shù)器
  68. $total = 0;
  69. //foreach遍歷數(shù)組實現(xiàn)累加功能
  70. foreach (func_get_args() as $item) {
  71. $total += $item;
  72. }
  73. return $total;
  74. }
  75. echo test5(10, 20, 30, 40);
  76. echo '<br>';
  77. function test6() : string
  78. {
  79. //數(shù)組求和
  80. return array_sum(func_get_args());
  81. //數(shù)組求積
  82. // return array_product(func_get_args());
  83. }
  84. echo test6(10, 20, 30, 40);
  85. echo '<br>';
  86. //剩余參數(shù)如果放在形參列表中:將每一個形參打包到一個數(shù)組中
  87. //剩余參數(shù)如果放在實參列表中:將實參數(shù)組打散為每一個實參值
  88. function test7(...$args) : float
  89. {
  90. return array_sum($args);
  91. }
  92. $arr = [10, 20, 30, 40];
  93. echo test7(...$arr);

5.總結

  • 函數(shù)是PHP非常重要的一塊知識
  • 有些新特性以前沒見過,或者不是很熟練
  • 博客可以記錄知識點和總結,沒事可以回來看看
批改老師:天蓬老師天蓬老師

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

老師批語:函數(shù),對于任何一門語言來說, 都處于核心地位, 花再多的時候去研究都是值得的
本博文版權歸博主所有,轉(zhuǎn)載請注明地址!如有侵權、違法,請聯(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+教程免費學