PHP函数按引用传递参数及函数可选参数用法示例

yipeiwu_com7年前PHP代码库

本文实例讲述了PHP函数按引用传递参数及函数可选参数用法。分享给大家供大家参考,具体如下:

一、函数按引用传递参数

1. 代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>按引用传递方式</title>
</head>
<body>
<?php
function example( &$m ) //定义一个函数,同时传递参数$m的变量
{
  $m = $m * 5 + 10;
  echo "在函数内:\$m = ".$m;    //输出形参的值
}
$m = 1;
example( $m ) ;           //传值:将$m的值传递给形参$m
echo "<p>在函数外:\$m = $m <p>" ;  //实参的值发生变化,输出m=15
?>
</body>
</html>

2. 运行结果

在函数内:$m = 15
在函数外:$m = 15

3. 注意事项

按引用传递时,需要注意在函数的参数列表中比按值传递多一个&。

二、函数的可选参数

1. 代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=gb2312"/>
<title>默认参数的应用</title>
</head>
<body>
<?php
function values($price,$tax=""){//定义一个函数,其中的一个参数初始值为空
$price=$price+($price*$tax);//声明一个变量$price,等于两个参数的运算结果
echo "价格:$price<br>";//输出价格
}
values(100,0.25);//为可选参数赋值0.25
values(100);//没有给可选参数赋值
?>
</body>
</html>

2. 运行结果

价格:125
价格:100

3. 注意事项

① 可选参数放在参数列表末尾,并且指定其默认值为空。
② 当使用默认参数时,默认参数必须放在非默认参数的右侧,否则函数可能出错。
③ 从PHP5开始,默认也可以通过引用传递。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP数组(Array)操作技巧大全》

希望本文所述对大家PHP程序设计有所帮助。

相关文章

php数组中删除元素之重新索引的方法

如果要在某个数组中删除一个元素,可以直接用的unset,但今天看到的东西却让我大吃一惊 复制代码 代码如下: <?php $arr = array('a','b','c',...

PHP程序61条面向对象分析设计的经验小结

(1)所有数据都应该隐藏在所在的类的内部。 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。 (3)尽量减少类的协议中的消息。 (4)实现所有类都理解的最基本公有接口[例如...

php简单判断两个字符串是否相等的方法

本文实例讲述了php简单判断两个字符串是否相等的方法。分享给大家供大家参考。具体实现方法如下: <?php function strcomp($str1,$str2)...

php Notice: Undefined index 错误提示解决方法

第一种方法:如果不影响程序的正常执行,可以采用屏蔽的方法可以在代码的第一行 加上 error_reporting(E_ALL ^ E_NOTICE); 关闭掉 NOTICE错误的警告第二...

ajax 的post方法实例(带循环)

ajax 的post方法实例(带循环)

用上循环就是为了在数据发送前进行合理的处理,解决在脚本语言对数据进行另外需求处理时出现的超时现象。处于对ajax认识未深,如有说得不对或不到位的,还请指教。     ajax中的po...