view
函数中存在不可预测的参数长度:
class My_Controller {
public function view()
{
$variables = func_get_args()
include $variables[0];
}
}
class autoload extends My_Controller {
function homePage ()
{
$this->view('home.php', $oneData, $twoData, $threeData)
//the arguments lengths is unpredictable here;
}
}
如何在include语句中传递参数$oneData
,$twoData
,$threeData
而不在function view ()
中静态声明它?
提前致谢
答案 0 :(得分:1)
我不太清楚你的include语句在做什么。但是,如果将视图函数更改为接受值数组,则可以将变量传递给视图。
class My_Controller {
public function view($viewFile, $arrValues)
{
print_r($arrValues);
foreach ($arrayValues as $variableName=>$variableValue) {
echo "The value for variable $variableName is $variableValue \n";
}
}
}
class autoload extends My_Controller {
function homePage ()
{
$this->view('home.php', array(
'oneData' => $oneData,
'oneData' => $twoData,
'threeData' => $threeData)
//the arguments lengths is unpredictable here;
}
}
答案 1 :(得分:0)
更新
只有函数可以接受参数,文件不能。
将您的实际逻辑放在一个函数中,并在包含该文件后在view()
中调用该函数。
答案 2 :(得分:-1)
尝试使用file_put_contents
class My_Controller {
public function view()
{
$variables = func_get_args()
call_user_func_array('file_put_contents',$variables);
}
}
class autoload extends My_Controller {
function homePage ()
{
$this->view('home.php', $oneData, $twoData, $threeData)
//the arguments lengths is unpredictable here;
}
}
希望有帮助:)