• PHP 函数的参数


    函数的参数

    通过参数列表可以传递信息到函数,即以逗号作为分隔符的表达式列表。

    PHP 支持按值传递参数(默认),通过引用传递参数以及默认参数。也支持可变数量的参数;更多信息请参照可变长度参数列表和涉及到的相关函数 func_num_args()func_get_arg()以及 func_get_args()

    Example #1 向函数传递数组

    <?php
    function takes_array($input)
    {
        echo 
    "$input[0] + $input[1] = "$input[0]+$input[1];
    }
    ?>

    通过引用传递参数

    缺省情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它并不会改变函数外部的值)。如果希望允许函数修改它的参数值,必须通过引用传递参数

    如果想要函数的一个参数总是通过引用传递,可以在函数定义中该参数的前面预先加上符号 &:

    Example #2 用引用传递函数参数

    <?php
    function add_some_extra(&$string)
    {
        
    $string .= 'and something extra.';
    }
    $str 'This is a string, ';
    add_some_extra($str);
    echo 
    $str;    // outputs 'This is a string, and something extra.'
    ?>

    默认参数的值

    函数可以定义 C++ 风格的标量参数默认值,如下:

    Example #3 在函数中使用默认参数

    <?php
    function makecoffee($type "cappuccino")
    {
        return 
    "Making a cup of $type. ";
    }
    echo 
    makecoffee();
    echo 
    makecoffee(null);
    echo 
    makecoffee("espresso");
    ?>

    上面代码段的输出是:


    Making a cup of cappuccino.
    Making a cup of .
    Making a cup of espresso.

    PHP 还允许使用数组和特殊类型 NULL 作为默认参数,例如:

    Example #4 使用非标量类型作为默认参数

    <?php
    function makecoffee($types = array("cappuccino"), $coffeeMaker NULL)
    {
        
    $device is_null($coffeeMaker) ? "hands" $coffeeMaker;
        return 
    "Making a cup of ".join(", "$types)." with $device. ";
    }
    echo 
    makecoffee();
    echo 
    makecoffee(array("cappuccino""lavazza"), "teapot");
    ?>

    默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等表达式。

    请注意当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;否则,函数将不会按照预期的情况工作。考虑下面的代码片断:

    Example #5 函数默认参数不正确的用法

    <?php
    function makeyogurt($type "acidophilus"$flavour)
    {
        return 
    "Making a bowl of $type $flavour. ";
    }

    echo 
    makeyogurt("raspberry");   // won't work as expected
    ?>

    上述例子的输出是:


    Warning: Missing argument 2 in call to makeyogurt() in
    /usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
    Making a bowl of raspberry .

    现在,比较上面的例子和这个例子:

    Example #6 函数默认参数正确的用法

    <?php
    function makeyogurt($flavour$type "acidophilus")
    {
        return 
    "Making a bowl of $type $flavour. ";
    }

    echo 
    makeyogurt("raspberry");   // works as expected
    ?>

    这个例子的输出是:


    Making a bowl of acidophilus raspberry.

    Note自 PHP 5 起,默认值可以通过引用传递。

    可变数量的参数列表

    PHP 4 及更高版本已经在用户自定义函数中支持可变数量的参数列表。其实很简单,只需使用func_num_args()func_get_arg(),和 func_get_args() 函数即可。

    可变参数并不需要特别的语法,参数列表仍按函数定义的方式传递给函数,并按通常的方式使用这些参数。

  • 相关阅读:
    谷歌浏览器内核自带长截图
    js文件导入swiper方法及分页器不显示原因
    Error: Cannot find module 'gifsicle'问题解决
    新型横向移动工具原理分析、代码分析、优缺点以及检测方案
    武汉解封一周年
    JAVA线程池ThreadPoolExecutor的分析和使用(新手踩坑和推荐方案)
    JAVA常量池
    Java String的intern()注意事项(分JDK1.6及JDK1.7)
    JAVA的类加载过程
    react hooks方法获取不到最新的state解决方法
  • 原文地址:https://www.cnblogs.com/moqiang02/p/4061335.html
Copyright © 2020-2023  润新知