PHP函数的定义和作用,PHP:函数的定义与调用

1、初识函数

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

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

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

内置函数

$str = 'ABcd';

$upper = strtoupper($str);        // 调用strtoupper()函数将$str转换成大写

$lower = strtolower($str);        // 调用strtolower()函数将$str转换成小写

echo $upper;            // 输出结果:ABCD

echo $lower;            // 输出结果:abcd

自定义函数   函数的定义由以下4部分组成:

关键字function

函数名functionName

参数

函数体

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

函数体……

}

各部分说明

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

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

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

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

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

2、参数设置

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

function shout()

{

return 'come on';

}

echo shout();// 输出结果:come on

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

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

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";

}

echo say('Tom');

// 输出结果:Tom say "Hello"

//注意:当使用默认参数时,默认参数必须放在非默认参数的右侧,否则函数可能出错。

在PHP 7.0及以上的版本后,在自定义函数时,可以指定参数具体是哪种数据类型。

function sum1(int $a, int $b){

return $a + $b;

}

echo sum1(2.6, 3.8); // 输出结果:5

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

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

declare(strict_types = 1);

function sum2(int $a, int $b){

return $a + $b;

}

echo sum2(2.6, 3.8); // 输出结果:Fatal error: ......

3、 变量的作用域

变量在定义后的默认情况下,函数中可以使用,函数外不可以使用。

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

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

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

function test(){

$sum = 36;     // 局部变量

return $sum;

}

$sum = 0;     // 全局变量

echo test();       // 输出结果:36

echo $sum;              // 输出结果:0

在函数中使用全局变量:参数传递,global关键字和超全局变量$GLOBALS。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值