在定义函数的时候,我们可以把其中的一个参数变的特殊起来,使它有一个默认值,这个参数就叫默认参数。在调用这个函数的时候,你既可以给这个默认参数传递一个值,这样的话默认参数的值会被覆盖掉,也可以不给它传递值,这样的话,函数会使用默认参数的值。

默认参数需要注意的点是,默认参数必须要在参数位置最右边,为什么呢?下面我们探究一下。

看下图中的这个例子,这个函数有两个参数,其中一个是默认参数,而且我把它放在了参数的从左边起的第一个位置上,当然了这段代码是会提示错误的。

还记得上面说过的吗?对于默认参数,你既可以给它传值,也可以不给它传值。OK,看sayHello(15);15这个参数是传递给了height了呢?还是传递给了age了呢?

假设15是传递给了height了,那么age这个参数的值就没有了,导致函数的输出是有问题的。

假设15是传递给age的,那么height使用默认的值,它是50,age使用传递过来的值,它是15,输出是没有问题的。

为了确保非默认参数能够获得传递过来的值,PHP规定了默认参数总是放在函数参数的最右边。

最新文章

  1. 关于一道PHP面试题的解法
  2. Materialize - 响应式 Material Design 框架
  3. Android中设置TextView的颜色setTextColor
  4. java去除字符串中的空格、回车、换行符、制表符
  5. 《Java中的单例模式--两种》
  6. sublime text 3 安装
  7. DataTable .Load 方法 (IDataReader)
  8. UVA 10127题目描述
  9. html-----014---统一资源定位器
  10. Javascript判断空对象
  11. java代码模拟先入先出,fifo
  12. Android应用程序与SurfaceFlinger服务的连接过程分析
  13. cocos2d-x路~使得第一个字游戏(一个)
  14. MongoDB:逐渐变得无关紧要
  15. Java TreeSet集合排序 && 定义一个类实现Comparator接口,覆盖compare方法 && 按照字符串长度排序
  16. 51Nod 1001 数组中和等于K的数对 Set
  17. NVM 安装 nodejs
  18. 【解决】Can't find default configuration "arch/x86/configs/xx_defconfig"!
  19. 【LeetCode】335. Self Crossing(python)
  20. HTTP协议特点

热门文章

  1. 2018.7.19 AK22 续集
  2. Leetcode 970. Powerful Integers
  3. linux命令学习笔记( 2 ) : cd 命令
  4. ProjectEuler654
  5. 关于本地模块安装入maven仓库出现的异常
  6. ORA-12514: TNS: no listener 解决方案
  7. Linq使用小记之Group By
  8. 发RTX通知
  9. linux下不用空格执行带参数的5种姿势
  10. redmine2.3环境搭建