当调用下面的函数并为$url
传递参数"test/asdf"和为$element
传递参数"variables"时,foreach
例程不会将变量$var
添加到$variables
数组中。但是,例程正确地打印出$var
值。
public function ParseURL($url, $element)
{
$splitURL = preg_split("/(''/)/is", $url);
if ($element == "page_id"){return $splitURL[0];}
elseif ($element == "all"){return $splitURL;}
elseif ($element == "variables"){
$i = 1;
$variables = array(0 => "test");
foreach ($splitURL as $var) {
if ($var != $splitURL[0]){
$variables[$i] == $var;
echo $var;
echo $variables[$i];
$i++;
}
}
var_dump($variables);
return $variables;
}
}
编辑
输入的URL将是网页域之后的所有内容,因此如果您输入字符串example.com/function/variable/variable2
,它将根据输入到元素参数中的字符串返回"function"、包含"function",variable
和variable2
的数组或包含"variable"answers"variable"的数组。
期望的输出是variable
和variable2
的阵列。
您在作业中有一个拼写错误,在您的示例中,有一个双==
:
$variables[$i] == $var;
^^
您可能只想写一个
将$variables[$i] == $var;
更改为$variables[$i] = $var;