服务器之家

服务器之家 > 正文

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

时间:2019-11-08 13:33     来源/作者: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"; 
?> 


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

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
返回顶部