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

 更新时间:2010年09月01日 10:13:50   作者:  
在定义或者使用php函数时,应该注意形参个数和实参个数的对应关系。
当实参个数<形参个数 时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 数组基本操作小结(推荐)

    下面小编就为大家带来一篇PHP 数组基本操作小结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Swoole 5将移除自动添加Event::wait()特性详解

    Swoole 5将移除自动添加Event::wait()特性详解

    这篇文章主要给大家介绍了关于Swoole 5将移除自动添加Event::wait()特性的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Swoole5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • php+Mysqli利用事务处理转账问题实例

    php+Mysqli利用事务处理转账问题实例

    这篇文章主要介绍了php+Mysqli利用事务处理转账问题的方法,实例分析了php+mysqli处理事务的提交与回滚的技巧,需要的朋友可以参考下
    2015-02-02
  • PHP令牌 Token改进版

    PHP令牌 Token改进版

    那个版本中,存在一个小问题,因为要做可逆加密,而加密出来的字符是不可显示字符+乱码,所以我用了 base64对其进行了处理,这样一来,就不会有乱码和不可显示字符了。
    2008-07-07
  • 基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)

    基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)

    本篇文章是对php导出到Excel或CSV(附utf8、gbk 编码转换)进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 如何修改和添加Apache的默认站点目录

    如何修改和添加Apache的默认站点目录

    本篇文章是对修改和添加Apache的默认站点目录方法进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • PHP pthreads v3下同步处理synchronized用法示例

    PHP pthreads v3下同步处理synchronized用法示例

    这篇文章主要介绍了PHP pthreads v3下同步处理synchronized用法,结合实例形式分析了PHP pthreads v3下同步处理synchronized原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2020-02-02
  • php反射学习之不用new方法实例化类操作示例

    php反射学习之不用new方法实例化类操作示例

    这篇文章主要介绍了php反射学习之不用new方法实例化类操作,结合实例形式进一步分析了php基于反射不用new方法进行实例化类的相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • php简单防盗链实现方法

    php简单防盗链实现方法

    这篇文章主要介绍了php简单防盗链实现方法,涉及php针对服务器端预定义变量调用及字符串处理的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP中source #N问题的解决方法

    PHP中source #N问题的解决方法

    最近写PHP里面的查询经常会遇到source #4或者source#5这样的问题,下面有个不错的解决方法,大家可以尝试下
    2014-01-01

最新评论