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

前端之家收集整理的这篇文章主要介绍了php中函数的形参与实参的问题说明前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

当实参个数<形参个数 时php会发出警告,因为php的解释机制会认为,有参数被定义了却没有被使用,那很可能会影响函数的功能。所以会发出警告。然而,当 实参个数>形参个数 时,PHP是不会报错的,它只会取前面的几个参数,多余的则将会丢弃。 在PHP中编写函数,一般情况下调用函数的时候,改变的值都是形参而不是实参.但是如果在形参中加入地址符时候就会改变实参的值,为什么? 请看下面的例子:
<div class="codetitle"><a style="CURSOR: pointer" data="13486" class="copybut" id="copybut13486" onclick="doCopy('code13486')"> 代码如下:

<div class="codebody" id="code13486">
<?PHP
//编写一个函数swap(),测试该函数的实参值无改变
function swap($a,$b) {
echo "

进入swqp()函数
\n";
echo "交换前:形参a=$a,形参b=$b
\n";
$c=$b;
$a=$b;
$b=$c;
echo "交换后:形参a=$a,形参b=$b
\n";
echo "退出swap()函数

\n";
}
$variablea=5;
$variableb=10;
echo "调用swap()函数前: ";
echo "实参a=$variablea,实参b=$variableb
\n";
swap($variablea,$variableb);
echo "调用swap()函数后: ";
echo "实参a=$variablea,实参b=$variableb
\n";
?>

<div class="codetitle"><a style="CURSOR: pointer" data="5200" class="copybut" id="copybut5200" onclick="doCopy('code5200')"> 代码如下:
<div class="codebody" id="code5200">
<?PHP
//测试swap()函数实参的值改变
function swap1(&$a,&$b) {
echo "

进入swap1()函数
\n";
echo "交换前: 形参a=$a,形参b=$b
\n";
$c=$b;
$a=$b;
$b=$c;
echo "交换后: 形参a=$a,形参b=$b
\n";
echo "退出swap()函数

\n";
} $variablea=5;
$variableb=10;
echo "调用swap1()函数前: ";
echo "实参a=$variablea,实参b=$variableb
\n";
swap1($variablea,$variableb);
echo "调用swap1()函数后: ";
echo "实参a=$variablea,实参b=$variableb
\n";
?>

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

猜你在找的PHP相关文章