php中函数的形参与实参的问题说明


Posted in PHP onSeptember 01, 2010

当实参个数<形参个数 时php会发出警告,因为php的解释机制会认为,有参数被定义了却没有被使用,那很可能会影响函数的功能。所以会发出警告。然而,当 实参个数>形参个数 时,php是不会报错的,它只会取前面的几个参数,多余的则将会丢弃。

在PHP中编写函数,一般情况下调用函数的时候,改变的值都是形参而不是实参.但是如果在形参中加入地址符时候就会改变实参的值,为什么?

请看下面的例子:

<?php 
//编写一个函数swap(),测试该函数的实参值无改变 
function swap($a,$b) { 
echo "<p>进入swqp()函数前<br>\n"; 
echo "交换前:形参a=$a,形参b=$b<br>\n"; 
$c=$b; 
$a=$b; 
$b=$c; 
echo "交换后:形参a=$a,形参b=$b<br>\n"; 
echo "退出swap()函数<br></p>\n"; 
} 
$variablea=5; 
$variableb=10; 
echo "调用swap()函数前: "; 
echo "实参a=$variablea,实参b=$variableb<br>\n"; 
swap($variablea,$variableb); 
echo "调用swap()函数后: "; 
echo "实参a=$variablea,实参b=$variableb<br>\n"; 
?>

<?php 
//测试swap()函数实参的值改变 
function swap1(&$a,&$b) { 
echo "<p>进入swap1()函数<br>\n"; 
echo "交换前: 形参a=$a,形参b=$b<br>\n"; 
$c=$b; 
$a=$b; 
$b=$c; 
echo "交换后: 形参a=$a,形参b=$b<br>\n"; 
echo "退出swap()函数<br></p>\n"; 
} $variablea=5; 
$variableb=10; 
echo "调用swap1()函数前: "; 
echo "实参a=$variablea,实参b=$variableb<br>\n"; 
swap1($variablea,$variableb); 
echo "调用swap1()函数后: "; 
echo "实参a=$variablea,实参b=$variableb<br>\n"; 
?>

//上面的两个例子就是说明,求教了~~~
PHP 相关文章推荐
PHP 编程请选择正确的文本编辑软件
Dec 21 PHP
坏狼的PHP学习教程之第2天
Jun 15 PHP
获取远程文件大小的php函数
Jan 11 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
PHP求最大子序列和的算法实现
Jun 24 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
PHP如何实现订单的延时处理详解
Dec 30 PHP
php数据库连接时容易出错的特殊符号问题
Sep 01 #PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 #PHP
使用bcompiler对PHP文件进行加密的代码
Aug 29 #PHP
php采集时被封ip的解决方法
Aug 29 #PHP
PHP isset()与empty()的使用区别详解
Aug 29 #PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 #PHP
php下统计用户在线时间的一种尝试
Aug 26 #PHP
You might like
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
php中session定期自动清理的方法
2015/11/12 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
浅析python redis的连接及相关操作
2019/11/07 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
一些Solaris面试题
2015/12/22 面试题
高中毕业自我鉴定
2013/12/13 职场文书
财务管理职业生涯规划范文
2013/12/27 职场文书
给老婆的搞笑检讨书
2014/01/12 职场文书
小学社会实践活动总结
2014/07/03 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
Vue vee-validate插件的简单使用
2021/06/22 Vue.js