还有下面的写法:(可变函数)
[](()2.2return
return有两个作用:
1、 是把函数运算的结果返回出去,比如上面的函数内部是经过了一系列复杂的逻辑判断,最终我们想拿到图片地址,所以用return把地址返回出去,后面调用函数的时候可以拿到这个地址。
2、 我们上面函数内部写了return以后,后续的任何代码都不会执行,因为return还有终止代码运行的作用。
[](()2.3默认值
备注:
函数参数可以设置默认值,但是必须大写(以常理的形式),如果设置了默认值,不传第二个参数就是以默认值计算,如果传递了就按传递的值计算。
[](()2.4值传递
如果函数的参数是以变量的形式传递的 默认是值传递 内部变量$a
变化并不会影响外部变量$num.
[](()2.4引用传递
下面的因为是引用传递 如果变量 a 和 a和 a和num指向同一块数据2,如果其中一个变化了,另一个也会跟着变化
原理如下:
[](()2.5作用域
js的作用域如下:
函数外部定义的变量叫全局变量,函数内部定义的变量叫局部变量,js函数内部能获取外部的全局变量,外部获取不到内部的局部变量。
php的作用域如下:
函数外部定义的变量叫全局变量,函数内部定义的变量叫局部变量,但是不同的是php函数内部获取不到外部的全局变量,函数外部也拿不到内部的局部变量。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210702085142115.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pIWExf,size_1 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 6,color_FFFFFF,t_70)
[](()2.6函数内部获取全局变量的方式
[](()2.6.1global
这种方法相当于是在函数内部创建了一个和外部全局变量同名的一个局部变量,然后就可以正常获取了.这两个变量是引用关系,内部变化了,外部也会跟着变化
[](()2.6.2$GLOBALS
如果用上面的方法,$GLOBAS是一个超全局数组,它的键名就是自己定义的变量的名字,值就是自己定义变量的值
[](()2.7练习
[](()2.7.1练习1
写函数创建长度为10(形参)的数组,数组中的元素为递增的奇数,首项为1
[](()2.7.2练习2
定义一个函数输出a(形参)行b(形参)列的表格
[](()2.7.3练习3
以封装格式,求出班级平均分。
假设传入的格式如下:
$arr=array(
array(‘语文’=>80, ‘数学’=>70, ‘英语’=>90),
array(‘语文’=>80, ‘数学’=>70, ‘英语’=>90),
array(‘语文’=>80, ‘数学’=>70, ‘英语’=>90)
);
答案如下:
[](()2.7.4练习4
以封装形式,用户可以在当前购物车中选购5件商品,商品数量,商品价位不确定,请返回应付出的总价是多少?
商品一:价格:N元,购买数量:N件,小计:N元
商品二:价格:N元,购买数量:N件,小计:N元
商品三:价格:N元,购买数量:N件,小计:N元
总计:N元
答案:
$arr1=array(
array(‘num’=>2, ‘price’=>70),
array(‘num’=>2, ‘price’=>60),
array(‘num’=>1, ‘price’=>80)
);
[](()2.7.5练习5
以封装格式,从一个数组中查询其某个单元是否存在,之后对其加红颜色显示。