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

yipeiwu_com7年前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中自定义函数dump查看数组信息类似var_dump

这个很早就有了,比php自带的var_dump好用多了。 复制代码 代码如下: function dump($vars, $label = '', $return = false) {...

PHP学习笔记之三 数据库基本操作

下面是在Linux上登录mysql,创建数据库和创建表的过程。 yin@yin-Ubuntu10:~$ mysql -u root -p Enter password: Welcome...

php通过ajax实现双击table修改内容

复制代码 代码如下: <script type="text/javascript"> $(function() { $("td").dblclick(function() {...

PHP实现上传文件并存进数据库的方法

本文实例讲述了PHP实现上传文件并存进数据库的方法。分享给大家供大家参考。具体如下: show_add.php文件如下: <?php if(!isset(...

php加速器eAccelerator的配置参数、API详解

它还能够对脚本进行优化以便加速它们的执行速度。利用eAccelerator可以减少服务器的负载并提高PHP代码的执行时间。 eAccelerator配置选项:复制代码 代码如下:zend...