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 相关文章推荐
56.com视频采集接口程序(PHP)
Sep 22 PHP
php 采集书并合成txt格式的实现代码
Mar 01 PHP
php Xdebug 调试扩展的安装与使用.
Mar 13 PHP
细谈php中SQL注入攻击与XSS攻击
Jun 10 PHP
memcache命令启动参数中文解释
Jan 13 PHP
不使用php api函数实现数组的交换排序示例
Apr 13 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP实现生成数据字典功能示例
May 24 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 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图像处理类实例
2015/07/28 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
Python中的字符串类型基本知识学习教程
2016/02/04 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
Python中正则表达式的用法总结
2019/02/22 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
人民教师的自我评价分享
2014/02/21 职场文书
协议书样本
2014/04/23 职场文书
心理健康日活动总结
2014/05/08 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
倡议书格式及范文
2015/04/29 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
Golang并发工具Singleflight
2022/05/06 Golang