对码当歌,猿生几何?

PHP 函数(second week)

一、函数的定义和调用

1. 初识函数

  • 函数:封装一段用于完成特定功能的代码。

  • 通俗理解函数:可以完成某个工作的代码块,就像小朋友搭房子用的积木一样,可以反复使用,在使用的时候,拿来即用,而不用考虑它的内部构成。

  • 函数分类:①内置函数(字符串操作函数、数组操作函数)②自定义函数

2. 内置函数

$str = 'ABcd';
$upper = strtoupper($str);		// 调用strtoupper()函数将$str转换成大写
$lower = strtolower($str);		// 调用strtolower()函数将$str转换成小写
echo $upper;			// 输出结果:ABCD
echo $lower;			// 输出结果:abcd

3. 自定义函数

<?php
function generate_table($row, $col)
{
     $html = '<table>';
     for ($i = 1; $i <= $row; ++$i) {
            $html .= '<tr>';
            for ($j = 1; $j <= $col; ++$j) {	
                   $html .= '<td></td>';
            }
            $html .= '</tr>';
    }
    return $html.'</table>';
}
// 生成4行8列的表格,并输出
echo generate_table(4, 8);
// 生成5行10列的表格,并输出
echo generate_table(5, 10);

4. 函数基本语法格式

function 函数名([参数1, 参数2, ……])
{
    函数体……
}

a ).函数的定义由以下4部分组成:

  • 关键字function

  • 函数名functionName

  • 参数

  • 函数体

5. 各部分说明

  • function:在声明函数时必须使用的关键字

  • 函数名:要符合PHP的标识符,且函数名是唯一的,不区分大小写

  • [参数1, 参数2…]:外界传递给函数的值,它是可选的,多个参数之间使用逗号“,”分隔。

  • 函数体:函数定义的主体,专门用于实现特定功能的代码段。

  • 返回值:需要使用return关键字将需要返回的数据传递给调用者。

6. 无参函数

function shout()
{
    return 'come on';
}
echo shout();// 输出结果:come on
    
   适用于不需要提供任何的数据即可以完成指定功能的情况。

7. 按值传递参数

      PHP默认支持按值传递参数,按此种方式定义的函数,在函数内部可以随意对用户传递的参数进行操作。

 // 方式一
echo add(5, 7);
// 方式二
$x = 5;
$y = 7;
echo add($x, $y);	
function add($a, $b)
{
    $a = $a + $b;
    return $a;
}

8. 引用传参

在开发中,若需要函数修改它的参数值,则需通过函数参数的引用传递。实现方式只需在参数前添加“&”符号即可。
$var = 'food';
extra($var);
// 输出结果:food and some extra
echo $var;		
function extra(&$str)
{
    $str .= ' and some extra';
}

9. 设置参数默认值

 函数参数在设置时,还可以为其指定默认值,也就是可选参数。当调用者未传递该参数时,函数将使用默认值进行操作。
function say($p, $con = 'say "Hello"')
{
    return "$p $con";
}
// 输出结果:Tom say "Hello"
echo say('Tom');

10. 扩展:从函数中返回值

调用函数时可以向函数发送信息(参数),函数也可以向调用者发回信息(返回值)。从函数返回的 值称为结果(result)或返回值(return value)。函数将返回值传递给调用者的方式是使用关键字return.return将函数的值返回给函数的调用者,即将程序控制权返回到调用者的作用域。

11. 变量的作用域

  • 思考:变量在定义后就可以在函数中使用嘛?

  • 答案:默认情况下,函数中可以,函数外不可以。

  • 解析:变量只有在其作用范围内才可以被使用,这个作用范围称为变量的作用域。

  • 在函数中定义的变量称为局部变量

  • 在函数外定义的变量称为全局变量

a ). 示例

  function test()
{
    $sum = 36; 	// 局部变量
    return $sum;
}
$sum = 0; 	// 全局变量
echo test();   	// 输出结果:36
echo $sum;          	// 输出结果:0

b ). 如何在函数中使用全局变量呢?

 答案是:参数传递,global关键字和超全局变量$GLOBALS