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

yipeiwu_com5年前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";
?>

//上面的两个例子就是说明,求教了~~~

相关文章

30 个很棒的PHP开源CMS内容管理系统小结

30 个很棒的PHP开源CMS内容管理系统小结

1. AdaptCMS AdaptCMS Lite 是一个开源的CMS系统,主要特点是易用,而且可以轻松和其他系统接驳,提供简单的扩展定制途径,一个简单而且功能强大的模板系统...

PHP函数http_build_query使用详解

什么是http_build_query? 使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。参数 formdata 可以是数组或包含属性的对象。一个 form...

PHP中检索字符串的方法分析【strstr与substr_count方法】

本文实例分析了PHP中检索字符串的方法。分享给大家供大家参考,具体如下: 在PHP中,提供了很多用于查找字符串的函数,PHP也可以像Word那样实现对字符串的查找功能。 应用strstr...

PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法

PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法

PHP在本机可以正常导出Excel,在上Linux就提示ERR_EMPTY_RESPONSE,下面说一下怎么不降版本还能正常导出Excel,解决上面的问题。 使用导出Excel的时候显示...

分享PHP计算两个日期相差天数的代码

本文实例讲述了php计算两个日期相差天数的方法。分享给大家供大家参考。具体实现方法如下: <?php $date1 = date( 'Y-m-d' ); $date2...