在写函数的时,有时我们会给参数设置默认值,如果参数默认值没有书写正确会引起警告,因此在这里整理一下正确使用方式

1.默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等。

2.注意当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;否则,函数将不会按照预期的情况工作。除非在调用的时候按照参数顺序都书写上,比较下面两个片段

function makeyogurt($type = "acidophilus", $flavour)

{

return "Making a bowl of $type $flavour.\n";

}

echo makeyogurt("raspberry"); // won't work as expected

以上代码会输出

Warning: Missing argument 2 in call to makeyogurt() in

/usr/local/etc/httpd/htdocs/phptest/functest.html on line 41

Making a bowl of raspberry .

但是如果是按照

function pin( $c=0,$b) {

$c++;

if( $c <= $b ) {

return $c . '/'.pin( $c,$b );

}

}

$a = pin(0,10);

echo $a;

这样对应的顺序去写,没有问题,只是默认值的作用就没有了,而且第一个参数必须要有,否则报错 因此,最好的方法是默认参数必须放在任何非默认参数的右侧

function makeyogurt($flavour, $type = "acidophilus")

{

return "Making a bowl of $type $flavour.\n";

}

echo makeyogurt("raspberry"); // works as expected

以上代码会输出

Making a bowl of acidophilus raspberry.

php函数默认参数不传值报错,php 关于函数参数的默认值相关推荐

  1. idea中js函数中使用EL表达式报错expression expected以及参数underfined的问题.md

    EL表达式显示错误expression expected问题: ​ 这段代码在MyEclipse中没有问题,因为idea的严格代码检查,这里会显示expression expected的错误,原因是因 ...

  2. python2中的unicode_python2中的unicode()函数在python3中会报错:

    python2中的unicode()函数在python3中会报错:NameError: name 'unicode' is not defined There is no such name in P ...

  3. mtk一键usb驱动_三菱MRJEB驱动器报错,导致报错原因37.1参数设置范围异常?

    三菱MR-JE-B驱动器报错,导致报错原因37.1参数设置范围异常?最近海蓝机电工程师们在做一个项目,做的是三菱MR-JE-B驱动器.工程师们在实操这个项目过程中遇到各种问题,其中就像驱动器报错的问题 ...

  4. 详解ArcGIS (Pro)面积制表(区域制表)参数设置及报错处理

    1.参数设置 2.报错处理 1.参数设置 ArcGIS中的"面积制表"功能对应ArcGIS Pro中的"区域制表"功能: 二者设定参数的方法是类似的.例如现在我 ...

  5. 支付宝支付,APP报错:“商家订单参数异常,请重新发起支付”(已解决)

    服务端更换appid后,移动端支付宝支付报错:"商家订单参数异常,请重新发起支付". (支付宝支付 服务端调用的version1.0版本的,与现在官方 app支付2.0版本所示接口 ...

  6. 【报错笔记】在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录。

    在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录. 我使用UUID生成8级目录,在webapp下创建目录,将图片传进 ...

  7. 【错误记录】Groovy 函数参数动态类型报错 ( Caught: groovy.lang.MissingMethodException: No signature of method )

    文章目录 一.报错信息 二.解决方案 一.报错信息 定义 Groovy 函数 , void fun(object) {object.hello() } 如果传入的 实例对象 中 , 没有定义 hell ...

  8. 【Matlab学习笔记】报错——检查对函数‘Link’的调用中是否缺失参数或参数数据类型不正确。

    最近在学习机械臂轨迹跟踪控制 复制的别人的代码(下面的代码),但Matlab总是在报错误--检查对函数'Link'的调用中是否缺失参数或参数数据类型不正确. L1 = Link([0 0 0 -pi/ ...

  9. python class函数报错_Python 的函数是第一类 First-Class 对象

    Python的函数是第一类对象(first-class object).你可以把一个函数复制给变量,或者把函数存储在一个结构中.可以像参数一样把函数传递进另一个函数,还可以从一个函数中返回另一个函数. ...

最新文章

  1. MyBaties学习记录
  2. Coding-数组(Array)
  3. c语言getitem函数,该借用和窃取的引用的Python C-API函数
  4. c# Parallel.For 并行编程 执行顺序测试
  5. MySQL与oracle报错显示_Oracle中判断表是否存在再删除表避免报错与MySql和SqlServer的不同...
  6. iOS开发Drag and Drop简介
  7. 五年级下册电子计算机与多媒体,语文人教版五年级下册《电子计算机与多媒体》.doc...
  8. SRM 698 div1 RepeatString
  9. 入门科普:什么时候要用Python?用哪个版本?什么时候不能用?
  10. 天津大学计算机专业怎么样,请问天大计算机专业的研究生怎么样啊?
  11. Caused by: java.lang.StringIndexOutOfBoundsException: length=5; regionStart=0; regionLength=-1
  12. c++如何让字符串重复输出_Python基础三(数据类型之数字和字符串)
  13. [网络安全自学篇] 八十八.基于机器学习的恶意代码检测技术详解
  14. Origin | 比例弦图 (Chord Diagram) | 比例弦图与弦图的区别
  15. 聚类分析软件测试,文本聚类分析效果评价笔记 - hellominefriend的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  16. 图像的幅度谱与相位谱
  17. [Github实战]双重认证2FA 如何 设置/更改[手把手][2022]
  18. win7云服务器访问网站很慢,告诉你Win7网速慢是什么原因,网速慢怎么办
  19. 凹凸贴图、法线贴图、置换贴图
  20. 有三种钱,你花得越多,赚得越多!

热门文章

  1. IF、如果、Rudyard Kipling
  2. 单分子实时测序技术的原理与应用
  3. 基于三代测序技术的高产糖化酶黑曲霉工业菌株基因组组装与注释及功能基因比较研究
  4. 锐捷服务器系统安全,锐捷网络平安城市解决方案满足室外监控的需求
  5. navicat的使用
  6. vmware ESXI6.7 设置 Nvidia 显卡直通
  7. 人群密度估计--CNN-based Cascaded Multi-task Learning of High-level Prior and Density Estimation for Crowd
  8. MariaDB/MySQL 报错解决:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
  9. Linux下使用perf进行性能分析,并导出火焰图
  10. linux bash sh,linux bash shell.sh编程实例