PHP函数的返回值、参数及变量、函数作用域的总结 您所在的位置:网站首页 在php中如何定义一个函数的参数 PHP函数的返回值、参数及变量、函数作用域的总结

PHP函数的返回值、参数及变量、函数作用域的总结

2024-07-13 14:24| 来源: 网络整理| 查看: 265

一、函数的参数与返回值

1、函数的参数:

定义一个命名函数或者匿名函数的时候,所设置的参数为形参,当调取这个函数进行执行的时候,所传的参数为实参。

多个参数可以用,隔开。

如果函数定义的时候设置了形参,那么调用这个函数的时候就必须传实参,如果没有设置形参,调用的时候可以不传实参。

如果没有参数 函数的执行任务是固定的

1628390254(1).jpg

1628391232(1).jpg

那么有小伙伴可能会问,我定义了一个函数,设置了形参,这个形参需要前端传给我,但是前端比较傲娇有时候不给可咋办,或者产品经理安排一个任务让做一个表格,就是给了个大面儿的需求让先出个给她看看后面再无限期修改又咋办,首先不(zou)要(ta)生(yi)气(dun),这个时候我们可以封装一个函数,然后给函数的形参赋一个初始值,这样调用函数的时候就算不传值也可以直接运行,但是需要注意:

调用函数所传的参数一定是从左到右读的

只能说是前面有参数后面空着如传(8,9),也就是不传参数或少传参数,后面的都会使用默认值,传了参数就会发生覆盖,但是不能前面空着后面有参数("他","hotpink"),这个就是错误的。

那么有的用户就是想只传过几个参数来,其他的默认咋整?(我觉得可以用IF语句做判断来进行调整,比如判定空或者输入的内容错误就输出默认值或者报错,否则就正常使用输入的信息)。

实例运行实例 »

点击 "运行实例" 按钮查看在线实例

可以用function_exists();判断是否有次函数。

剩余参数"..." 适用于参数的个数不确定的情况,一般用在数据库的链接,下面先举个简单的例子:

1628398775(1).jpg

2、函数的返回值

在定义的函数中,可以用return语句返回一个值,这里需要注意

1.函数只能返回单个值,函数遇到return就会停止执行后面的代码,遇到return即结束。

2.函数的返回值,也可以返回数组、对象、或者是一个函数,其中如果返回值是函数也是不能用echo来输出的。

从结果中可以看到函数输出了66就停止了后面没再往下执行

1628396376(1).jpg

如果想输出多个值,可以以数组、对象的形式返回:

二、匿名函数及变量、匿名函数的作用域

之前在php变量的类型与转换及变量与常量的区别说到过php全局成员:常量、函数、类、接口,其实严格点来说,应该是:常量、命名函数、类、接口。

匿名函数,匿名函数说白一点就是不带名字的函数,像如命名函数都是带名称,可以使用名称直接调用的如:

匿名函数就是不带名称的,这个时候需要赋给一个变量:

匿名函数跟函数体内声明的变量都是严格受到作用域的限制的,如:

匿名函数:

函数体内声明的变量:实例运行实例 »

点击 "运行实例" 按钮查看在线实例

可以看到函数能正常输出,函数外调用变量失败,函数内的变量严格受作用域限制,无法在外部使用

1628401441(1).jpg

但是函数体外定义的全局变量就能随便调用嘛?

可以做一个尝试,把上面的代码改一下:

实例运行实例 »

点击 "运行实例" 按钮查看在线实例

哦吼。。。跟上面报了一样的错误:

1628401765(1).jpg

那全局变量都调取不了嘛?其实不是的,全局变量在函数内调用可以用global 超全局变量 跟$GLOBALS 超全局数组引入:

实例运行实例 »

点击 "运行实例" 按钮查看在线实例

可以看到能够正常调取运行

1628402430(1).jpg

如果这个函数是一个匿名函数,则调取全局变量就更加简单:

实例运行实例 »

点击 "运行实例" 按钮查看在线实例

1628402430(1).jpg

正常输出,而且匿名函数用引用调取的方法还可以改变全局变量的值。

实例运行实例 »

点击 "运行实例" 按钮查看在线实例

可以看到正常把$name的值从money换成了admin

1628403125(1).jpg

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:函数都是单值返回, 当然 这个值可以是引用类型, 为了突破它, 现在已有了很多替代方案, 例如迭代, 一次调用,中间多次返回, 以后可以进阶学习



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有