首页 > 编程语言 >PHP 中的默认(缺省)参数的函数

PHP 中的默认(缺省)参数的函数

时间:2023-04-25 12:02:13浏览次数:47  
标签:默认值 函数 缺省 调用函数 参数 默认 PHP

前言

在PHP中有一种函数,在调用的时候某些参数是可以缺省的,也就是说,在调用函数的时候可以传值,也可以不传值,如果在调用函数的时候传入具体的值就会使用传入的值,否则就会使用默认的值,默认的值在函数定义的时候就已经设置好,默认(缺省)参数的函数格式如下所示:

mixed funName(string name,[,string value [, int expire]) #在参数列表中使用[]描述参数

默认(缺省)参数的函数编程实践

在定义函数时声明了参数,而在调用函数时没有指定参数或是少指定了参数,就会出现缺少参数的警告。在PHP中,支持函数的默认方式调用,即为参数指定一个默认值。在调用函数时,如果没有指定参数的值,在函数中会使用参数的默认值。默认值必须是常量表达式,不能是变量,类成员或函数调用,也就是说要是一个确切的值。PHP还允许使用数组和特殊类型NULL作为默认参数。下面我们通过简单的例子进行演示:

<?php
 function student($name="张三", $age=18, $sex="男", $classes=1)
 {
   echo "该学生的姓名:{$name},班级:{$classes}班, 年龄:{$age}, 性别:{$sex} \n";
 }

 student();               //使用默认参数
 student("赵四");           
 student("王五",22);        
 student("翠花",22,"女");    //传入前面三个参数
 student("李白",22,"男",2); //所有参数全覆盖
?>

执行结果如下:

PHP 中的默认(缺省)参数的函数_默认值

在上面的例子中声明了一个名为student()并带有四个参数的函数,所有的参数都被默认附上初始值,即默认参数。在调用该函数的时候,如果少传后不传参数,参数将使用默认的值。如果用户在调用函数时传值,则使用传入的值。

当调用函数传递参数时,实参和形参是按照顺序对应传递数据的,如果实参数少于形参,则右边的形参不会被传值。当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧,否则可能函数将不会按照预期的情况进行工作,这时候当传入参数少于形参时,会出现缺少参数警告

咱们来个反面教材:下面的函数声明就是函数默认参数不正确的用法。后面两个参数没有被传值,也没有默认值,在调用时出现警告

<?php
 function student($name="张三", $age=18, $sex, $classes){
   echo "该学生的姓名:{$name},班级:{$classes}班, 年龄:{$age}, 性别:{$sex} \n";
 }

 student("赵四");           
?>

执行结果如下:该结果是由在线代码运行工具所得

PHP 中的默认(缺省)参数的函数_默认值_02

需要将函数头部的参数列表中,默认参数列在所有没有默认值的参数的后面,该程序就可以正确的执行。我们将其稍作修改即可正常运行:

<?php
 function student($sex, $classes,$name="张三", $age=18)
 {
   echo "该学生的姓名:{$name},班级:{$classes}班, 年龄:{$age}, 性别:{$sex} \n";
 }

 student("男",2,"赵四");           
?>

在上面的代码中,函数 student() 在调用时,前两个参数时必须传值的参数,如果不传之则会出现错误;而后面两个参数是可选的参数,如果不传值则使用默认的值。在PHP的系统函数中有很多这样的函数,前面是必须传值的参数,后面是可选参数。比如我们常用的一些函数:printf(),explode(),mysql_query(),setCookie()等等,这些函数都有必选和可选参数两种

标签:默认值,函数,缺省,调用函数,参数,默认,PHP
From: https://blog.51cto.com/micai01/6223725

相关文章

  • 戴尔 联系 IBM 常用服务器 存储 默认管理口 地址 用户名 密码
    服务器设备默认管理1、宝德4卡服务器默认用户名:ADMIN/密码:111111112、超微服务器默认用户名:ADMIN/密码:admin000默认用户名:ADMIN/密码:ADMIN3、浪潮服务器型号:NF5270M4管理地址:手动配置默认用户名:admin/密码:admin型号:NF5270M2管理里地址:192.168.1.100默认用户名:a......
  • centos 7更改默认网卡名称
     [root@dev1-k8s-node-3~]#cd/etc/sysconfig/network-scripts/[root@dev1-k8s-node-3network-scripts]#cpifcfg-ehs192ifcfg-eth0[root@dev1-k8s-node-3network-scripts]#mvifcfg-ehs192ifcfg-ehs192-old[root@dev1-k8s-node-3network-scripts]#sed-i&quo......
  • edge如何设置搜索栏默认搜索引擎
    首先,找到“隐私、搜索和服务”下的“地址栏和搜索”: 点击“地址栏中使用的搜索引擎”右侧的多选框选择引擎: ......
  • PHP中的引用参数的函数
    前言php的引用(就是在变量或者函数、对象等前面加上&符号)在PHP中引用的意思是:不同的名字访问同一个变量内容。与C语言中的指针是有差别的。C语言中的指针里面存储的是变量的内容在内存中存放的地址,函数的引用返回多用在对象中引用参数的函数格式说明如下代码所示:voidfunName(array......
  • php按照首字母排序,PHP获取汉字首字母并分组排序
    没问题的直接上代码classCharacter{publicfunctiongroupByInitials(array$data,$targetKey='name'){$data=array_map(function($item)use($targetKey){returnarray_merge($item,['initials'=>$thi......
  • thinkphp在模型中自动完成session赋值示例代码
    相信用过thinkphp的用户都知道thinkphp的模型可以完成很多辅助功能,比如自动验证、自动完成等,今天在开发中遇到自动完成中需要获取session值然后自动赋值的功能,具体看代码;classArticlelModelextendsModel{protected$_auto=array(array('addtime','time',1,'function'......
  • git将本地默认分支推送到远程默认分支
    gitpush-uoriginmain命令用于将本地默认分支(这里假设为main)的代码推送到远程仓库中,并将其与远程默认分支关联起来(通常为origin/main)。具体操作步骤如下:在本地仓库中提交你的代码到默认分支main:$gitadd.$gitcommit-m"xxx"将本地默认分支main推送到关联......
  • Eclipse默认标签TODO,XXX,FIXME和自定义标签[转]
    1TODO表示需要实现,但目前还未实现的功能2XXX勉强可以工作,但是需要改进的功能3FIXME代码是错误的,不能工作,需要修复4.自定义标签window-->preferences-->java-->compiler-->tags选择new,输入tag,选择priority,ok上述所有注释都会被eclipseta......
  • 【转载】PHP 箭头函数( Lambda表达式 )
    参考箭头函数(php官方中文文档)Laravel10集合--learnku环境软件/系统版本说明windows10php8.2.5-nts-Win32-vs16-x64箭头函数要求>=7.4.0备注如果需要详细了解,请点击本文参考内的官网链接,本文只是简单记录浏览learnku中文Laravel文档的时候......
  • PHP Warning: json_encode(): Invalid UTF-8 sequence in argument
    今天调试代码的时候发现json_encode()报错问题如下描述:问题代码:$requestData=json_encode(array('wechat_group_name'=>$wechat_group_name,'text_message'=>$text_message,//该值是中文一个拼接字符串));能后报错PHPWarning:json_encode():Inv......