学习论坛 会员投稿 RSS订阅 站内通告:
搜索: 您的位置网站源代码 > 网络编程 > php教程 > [函数]PHP笔记2:PHP创建函数的过程以及使用实例

[函数]PHP笔记2:PHP创建函数的过程以及使用实例

2010-03-12 08:29:54 来源:原创 【 】 浏览:
摘要: 对于力图避免在编程中闭门造车、一切都重新发明的程序员来说,虽然PHP 的众多函数库是一笔巨大的财富,但迟早都会用到标准包以外的函数,这意味着你需要创建定制函数,甚至创建

[函数]PHP笔记2:PHP创建函数
对于力图避免在编程中闭门造车、一切都重新发明的程序员来说,虽然PHP 的众多函数库是一笔巨大的财富,但迟早都会用到标准包以外的函数,这意味着你需要创建定制函数,甚至创建整个函数库。为此,需要使用预定义模板来定义一个函数,如下:

 function functionName(parameters){
 function-body
}
例如,考虑下面的函数generate_footer(),它将输出一个页脚:
 function generateFooter(){
 echo "Copyright 2010 W. Jason Gilmore";
}
定义之后,就可以像下面这样调用这个函数:
 <?php
generateFooter();
?>
这将产生如下的结果:
 Copyright 2010 W. Jason Gilmore
1.按值传递参数
    你会经常发现向函数传递数据很有用。举一个例子来说。创建一个函数,他要确定销售税率,然后将税费增加到价格上,从而计算商品的总价:
 function calcSalesTax($price,$tax)
{
 $total=$price+($price*$tax);
 echo "Total cost:$total";
}
当然,并非只能向函数传递静态值。也可以像下面这样传递变量:
 <?php
$pricetag=15.00;
$salestax=0.075;
calcSalesTax($pricetag,$salestax);
?>
     以这种方式传递参数时,称为按值传递。这就意味着,函数范围内对这些值的任何改变在函数外部都会被忽略。如果希望在函数范围外也能反映出这些修改,则可以按引用传递参数。
注解:需要说明的是,不要求非得在调用之前定义函数,因为PHP在执行前会把整个脚本读到引擎中。因此,可以在定义之前就调用salestax(),但并不推荐这种随便的做法。
2.按引用传递参数
在有些情况下,可能希望在函数内对参数的修改在函数范围外也能反映,按引用传递参数就可以满足这样需求。按引用传递参数(也称传引用)要在参数前加上&符号。下面是一个例子:
 <?php
    $cost = 20.00;
    $tax = 0.05;
    function calculate_cost(&$cost, $tax)
    {
        // Modify the $cost variable
        $cost = $cost + ($cost * $tax);
        // Perform some random change to the $tax variable.
        $tax += 4;
    }
    calculate_cost($cost,$tax);
    echo "Tax is: ".($tax*100)."<br />";
    echo "Cost is: $". $cost."<br />";
?>
下面是输出:
 Tax is: 5
Cost is: $21
注意,$tax的值依然相同,但$cost已经改变。
3.默认参数值
      可以为输出参数指定默认值,在没有提供其他值的情况下,就会把这个默认值自动赋值给该参数。下面来修改前面销售税的例子,假设你的销售主要集中在俄国,可以知道$tax的默认值为6.75%,如下:
 function salestax($price,$tax=0.675) {
   $total = $price + ($price * $tax);
   echo "Total cost: $total";
}
仍可以为$tax传递其它的税率。只要如下调用salestax()时才会使用默认值6.75%:
 $price=15.47;
salestax($price);
默认参数值必须位于参数列表末尾或为常数表达式,而不能指定函数调用或变量等非常量值。
可以指定某个参数为可选参数,为此,这些参数需要放在参数列表末尾,而且要指定其默认值为空,如下:
 function salestax($price,$tax="") {
   $total = $price + ($price * $tax);
   echo "Total cost: $total";
}
这样如果没有销售税,就可以如下调用salestax(),而不知道第二个参数:
 salestax(42.00);
这个调用会返回如下内容:
 Total cost: 42
如果指定了多个可选参数,可以选择性地传递某些参数。考虑下面这个例子:
 function calculate($price,$price2="",$price3=""){
 echo $price+$price2+$price3;
}
调用calculate()时,可以只传递$price和$price3,如下:
 calculate(10,"",3);
它返回如下值:
 13


顶一下
(0)
0%
踩一下
(0)
0%
Tags: php函数 PHP创建函数
责任编辑:小人物
收藏】 【挑错】 【推荐】 【打印
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
关于我们 | 网站声明 | 广告服务 | 招聘英才 | 联系我们 | 网站地图 | RSS订阅 |