function mzrui_display($t_name,$id)
{}我想把第二个参数可选就是在调用的时候可以只给一个参数吗mzrui_display('1111')  第二个参数可以给,也可以不给???我现在测试的会报错  Warning: Missing argument 2  要怎么解决??
还是参数必须一一对应???

解决方案 »

  1.   

    function mzrui_display($t_name,$id='')
    {}
    你给它一个默认值就行了。随便设。
      

  2.   


    这种写法是不符合规范的,建议要给参数赋默认值,例如改为:
    function mzrui_display($t_name,$id=-1)
    {}或者干脆参数也不用了,直接使用func_get_args,改为:
    function mzrui_display()
    {
       $args = func_get_args();
       $args_num = func_num_args();
       if($args_num == 0){
          echo '请输入参数';
          exit;
       }
       if($args_num == 1){
          $t_name = $args[0];
       }
       if($args_num >= 2){
          $t_name = $args[0];
          $id = $args[1];
       }
    }
      

  3.   

    附函数参考:
    func_get_args
    (PHP 4, PHP 5)func_get_args — Returns an array comprising a function's argument list说明
    array func_get_args ( void )
    Gets an array of the function's argument list. This function may be used in conjunction with func_get_arg() and func_num_args() to allow user-defined functions to accept variable-length argument lists. 返回值
    Returns an array in which each element is a copy of the corresponding member of the current user-defined function's argument list. 更新日志版本 说明 
    5.3.0 This function can now be used in parameter lists.  
    5.3.0 If this function is called from the outermost scope of a file which has been included by calling include() or require() from within a function in the calling file, it now generates a warning and returns FALSE.  
    错误/异常
    Generates a warning if called from outside of a user-defined function. 范例Example #1 func_get_args() example<?php
    function foo()
    {
        $numargs = func_num_args();
        echo "Number of arguments: $numargs<br />\n";
        if ($numargs >= 2) {
            echo "Second argument is: " . func_get_arg(1) . "<br />\n";
        }
        $arg_list = func_get_args();
        for ($i = 0; $i < $numargs; $i++) {
            echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
        }
    }foo(1, 2, 3);
    ?> 
    以上例程会输出:Number of arguments: 3<br />
    Second argument is: 2<br />
    Argument 0 is: 1<br />
    Argument 1 is: 2<br />
    Argument 2 is: 3<br />
    Example #2 func_get_args() example before and after PHP 5.3test.php
    <?php
    function foo() {
        include './fga.inc';
    }foo('First arg', 'Second arg');
    ?>fga.inc
    <?php$args = func_get_args();
    var_export($args);?> 
    Output previous to PHP 5.3: array (
      0 => 'First arg',
      1 => 'Second arg',
    )
    Output in PHP 5.3 and later: Warning: func_get_args():  Called from the global scope - no function
    context in /home/torben/Desktop/code/ml/fga.inc on line 3
    false
    Example #3 func_get_args() example of byref and byval arguments<?php
    function byVal($arg) {
        echo 'As passed     : ', var_export(func_get_args()), PHP_EOL;
        $arg = 'baz';
        echo 'After change  : ', var_export(func_get_args()), PHP_EOL;
    }function byRef(&$arg) {
        echo 'As passed     : ', var_export(func_get_args()), PHP_EOL;
        $arg = 'baz';
        echo 'After change  : ', var_export(func_get_args()), PHP_EOL;
    }$arg = 'bar';
    byVal($arg);
    byRef($arg);
    ?> 
    以上例程会输出:
    As passed : array (
    0 => 'bar',
    )
    After change : array (
    0 => 'bar',
    )
    As passed : array (
    0 => 'bar',
    )
    After change : array (
    0 => 'baz',
    )
      

  4.   

    func_num_args
    (PHP 4, PHP 5)func_num_args — Returns the number of arguments passed to the function说明
    int func_num_args ( void )
    Gets the number of arguments passed to the function. This function may be used in conjunction with func_get_arg() and func_get_args() to allow user-defined functions to accept variable-length argument lists. 返回值
    Returns the number of arguments passed into the current user-defined function. 更新日志版本 说明 
    5.3.0 This function can now be used in parameter lists.  
    5.3.0 If this function is called from the outermost scope of a file which has been included by calling include() or require() from within a function in the calling file, it now generates a warning and returns -1.  
    错误/异常
    Generates a warning if called from outside of a user-defined function. 范例Example #1 func_num_args() example<?php
    function foo()
    {
        $numargs = func_num_args();
        echo "Number of arguments: $numargs\n";
    }foo(1, 2, 3);   
    ?> 
    以上例程会输出:Number of arguments: 3
    Example #2 func_num_args() example before and after PHP 5.3test.php
    <?php
    function foo() {
        include './fna.php';
    }foo('First arg', 'Second arg');
    ?>fna.php
    <?php$num_args = func_num_args();
    var_export($num_args);?> 
    Output previous to PHP 5.3: 2
    Output in PHP 5.3 and later will be something similar to: Warning: func_num_args():  Called from the global scope - no function
    context in /home/torben/Desktop/code/ml/fna.php on line 3
    -1
      

  5.   

    function mzrui_display($t_name,$id='')
    第二个参数给一个初始值就行了