Php 将多个参数传递给函数

Php 将多个参数传递给函数,php,Php,我创建了以下函数,如果将所选日期字符串传递给它,它将简单地回显“active”: function active_day($theday) { if (date('D') == $theday) { echo 'active'; } } 如果我传入一个参数,该函数就可以正常工作 active_day( 'Sun' ); 但是,我想传入两个参数,例如 active_day( 'Sun', 'Mon' ); 这在周日很有效,但由于某些原因它忽略了周一 知道我做错

我创建了以下函数,如果将所选日期字符串传递给它,它将简单地回显“active”:

function active_day($theday) {
    if (date('D') == $theday) {
        echo 'active';
    }
}
如果我传入一个参数,该函数就可以正常工作

active_day( 'Sun' );
但是,我想传入两个参数,例如

active_day( 'Sun', 'Mon' );
这在周日很有效,但由于某些原因它忽略了周一


知道我做错了什么吗?

您需要更改函数声明本身

function active_day($theday,$anotherday)
由于您已将函数定义为接受单个参数,因此它只接受单个参数

其他选择 在本例中,可以将参数作为数组传递给函数

function active_day($newarr) {

  //  if (date('D') == $theday) {
  //      echo 'active';
  //  }

  echo $newarr[0];//Sun
  echo $newarr[1];//Mon
}

$arr= array('Sun','Mon');
active_day($arr);

您正在寻找PHP函数获取参数:

<?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);
?>

将输出:

参数数量:3
第二个论点是:2
参数0是:1
论点1是:2

参数2是:3

您将函数声明为仅接受一个参数,然后检查该参数。如果您打算传递多个参数,则将其声明为:

function active_day($theday, $secondday);
然后,您可以在两天内致电:

active_day( 'Sun', 'Mon' );
如果您事先不知道要传递多少个参数,可以使用
func\u get\u args
函数并相应地更改函数:

function active_day() {
    $days = func_get_args();
    foreach($days as $day) {
        echo "$day - ";
        if (date('D') == $day) {
            echo 'active';
        }
        echo "\n";
    }
}

必须阅读:-1对于func\u get\u args文档的盲拷贝粘贴,您是对的,但对使用函数argsNo的完美解释不是完美的解释。一个完美的解释是,如果您实际更改了示例代码以匹配问题。