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

yipeiwu_com6年前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 session的应用详细介绍

php session的应用详细介绍

php session高级应用 session在web技术中非常重要,由于网页是一种无状态的连接程序,因此无法得知用户的浏览状态。通过session则可以记录用户的有关信息,以供用户再次...

PHP SOCKET编程详解

1. 预备知识 一直以来很少看到有多少人使用php的socket模块来做一些事情,大概大家都把它定位在脚本语言的范畴内吧,但是其实php的socket模块可以做很多事情,包括做ftpli...

PHP基于反射机制实现插件的可插拔设计详解

本文实例讲述了PHP基于反射机制实现插件的可插拔设计。分享给大家供大家参考,具体如下: 说PHP和ASP等同的朋友们可以就此打住了,PHP支持反射,而且还是非常的强大。好了,我们开始今天...

PHP中动态显示签名和ip原理

<?php  //包含一个计数器,一个提醒语句,用户ip以及自己的广告图片。 //给浏览器发送头,说我是张图片 Header("Content-type: im...

利用php下载xls文件(自己动手写的)

利用php下载xls文件(自己动手写的)

昨天看ECSHOP源码的时候,碰到了一点自己没有学过的只是--如何利用php实现下载xls文件。根据它的源码,我动手实现了一下,成功实现了这个效果。 源码: 复制代码 代码如下: <...