我在函数中传递了很多参数
我想知道我的工作是否错误,是否可以将所有这些变量放入数组并调用数组:
这是我的函数参数:
function addjo($logo, $job_category, $job_name, $status, $localization, $job_type, $contract_type, $description)
我的代码识别所有变量。
if (isset($_POST['add_jo'])){
$job_category =$_POST['job_category'];
$description = $_POST['description'];
$job_name = $_POST['job_name'];
$logo = $_POST['logo'];
$status = $_POST['status'];
$localization = $_POST['localization'];
$job_type = $_POST['job_type'];
$contract_type = $_POST['contract_type'];
addjo($logo, $job_category, $job_name, $status, $localization, $job_type, $contract_type, $description);
}else{
$logo = NULL;
$job_category = NULL;
$job_name = NULL;
$status = NULL;
$localization = NULL;
$description = NULL;
$job_type = NULL;
$contract_type = NULL;
$check1 = NULL;
$check2 = NULL;
}
是否可以做这样的事情?
if(isset($_POST['mybutton'])){
array[](
$var1 = $_POST['var1'];
$var2 = $_POST['var2'];
);
function(callarrayhere);
else{
$var1 = null;
$var2 = null;
}
感谢。
答案 0 :(得分:1)
由于$_POST
已经是一个数组,所以只需使用它:
addjob($_POST);
在addjob
:
function addjob($input) {
// verify that array items are present and correct.
}
将数组的值导出到单个变量不仅浪费时间和内存,而且还会使您的代码更难阅读(这些变量来自何处?它们来自同一源数组并不明显)
答案 1 :(得分:0)
是的,可以将数组作为函数的参数。你的语法不是很正确。这样就可以了:
function addjo($params){
echo $params['logo'];
echo $params['job_category'];
echo $params['job_name'];
}
用法示例:
$arr = array(
'logo' => $logo,
'job_category' => $job_category,
'job_name' => $job_name
);
addjo($arr);
您也可以为每个数组元素设置默认参数,或者使它们成为可选参数。 See this answer了解如何做到这一点。
答案 2 :(得分:0)
当然可能:
if (isset($_POST['add_jo'])){
$a = array();
$a['job_category'] =$_POST['job_category'];
$a['description'] = $_POST['description'];
// and so on
$a['contract_type'] = $_POST['contract_type'];
addjo($a);
}
else
{
$a['job_category'] = null;
// and so on
}
在函数addjo中,您可以通过以下方式显示所有值:
function addjo($a) {
foreach ($a as $k => $v) {
echo $k.' '.$v."<br />"
}
// or
echo $a['job_category'];
}