PHP函数的定义

函数就是功能。封装一段用于完成特定功能的代码。调用一个函数就是在调用一个功能。

1. 函数分类

内置函数:

PHP函数中有一些内置函数,这些函数是不能随便进行更改的;
strtoupper() 和 strtolower()是两个内置的函数,用于对字符串进行大小写转换。

$str = 'ABcd';
$upper = strtoupper($str);		// 调用strtoupper()函数将$str转换成大写
$lower = strtolower($str);		// 调用strtolower()函数将$str转换成小写
echo $upper;			// 输出结果:ABCD
echo $lower;			// 输出结果:abcd
自定义函数
function generate_table($row, $col){
	$html = '';
	for ($i = 1; $i <= $row; ++$i) {
      	$html .= '';
           for ($j = 1; $j <= $col; ++$j){	
               $html .= '';
        }
         $html .= '';
	}
   	return $html.'
'; } echo generate_table(5,5);

以上是使用自定义函数将表格生成器定义为一个函数。

2. 函数的基本语法格式

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

function:在声明函数时必须使用的关键字
函数名:要符合PHP的标识符,且函数名是唯一的,不区分大小写
[参数1, 参数2…]:外界传递给函数的值,它是可选的,多个参数之间使用逗号“,”分隔。
函数体:函数定义的主体,专门用于实现特定功能的代码段。
返回值:需要使用return关键字将需要返回的数据传递给调用者。

3. 参数设置

对于函数来说,参数的不同设置,决定了其调用和使用方式。

无参函数

适用于不需要提供任何数据即可完成指定功能的情况。

function shout(){
    return 'come on';
}
echo shout();	// 输出结果:come on
按值传递函数

这种方式定义的函数,在函数内部可以随意对用户传递的参数进行操作。

function add($a, $b){
    $a = $a + $b;
    return $a;
}
echo add(5, 7);
// 对于有参数的函数做调用时,不仅可以直接传值,还可以使用变量代替。
$x = 5;
$y = 7;
echo add($x, $y);	
引用传参

如需要修改参数值,则需要通过函数参数的引用传递,在参数前面加 & 即可。

function extra(&$str){
    $str .= ' and some extra';
}
$var = 'food';
extra($var);
// 输出结果:food and some extra
echo $var;
设置参数默认值

函数参数在设置时,还可以为其指定默认值,也就是可选参数。当调用者未传递该参数时,函数将使用默认值进行操作。

function say($p, $con = 'say "Hello"'){
    return "$p $con";
}
// 输出结果:Tom say "Hello"
echo say('Tom');
指定参数类型(弱)

当用户调用函数时,如果传递的参数不是int类型,程序会将其强制的转换为int型后,再进行操作,这种方式称为弱类型参数设置。

function sum1(int $a, int $b){
    return $a + $b;
}
echo sum1(2.6, 3.8); // 输出结果:5
指定参数类型(强)

还可以将其设置为强类型的参数,即当用户传递的参数类型不符合函数的定义,程序会报错提醒。

declare(strict_types = 1);
function sum2(int $a, int $b){
    return $a + $b;
}
echo sum2(2.6, 3.8); // 输出结果:Fatal error: ......

4. 变量的作用域

变量只有在定义后才可使用,但并不是说变量定义后就能随时使用,只有在其作用范围内才可以被使用,这个作用范围叫作用域。
在函数内部定义的变量称为局部变量,在函数外部定义的变量称为全局变量。

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

默认情况下,函数中不能使用全局变量,同时局部变量的改变也不会对全局变量有任何影响。

你可能感兴趣的:(PHP)