我一直在
警告: ......在线......非法字符串偏移'类型'
我已尝试按照Illegal string offset Warning PHP
中的答案进行操作做类似
的事情if(isset($_POST['type_'.$i]))
$$T['type'] = $_POST['type_'.$i];
但它仍然会出错,我认为它可能与变量变量有关(这是我第一次使用它们。下面是我的代码:
for($i = 1; $i <= 15; $i++){
$T = 'T'.$i;
$$T['type'] = $_POST['type_'.$i];
$$T['hidden'] = $_POST['hidden_'.$i];
$$T['require'] = $_POST['require_'.$i];
if(isset($_POST['question_'.$i.'_list']))
$$T['list'] = $_POST['quesiton_'.$i.'_list'];
}
我不想创建数组T1,T2 ... T15,其值为['type'], ['hidden'], ['require'], ['list']
。
答案 0 :(得分:3)
那是怎么回事?
for($i = 1; $i <= 15; $i++){
$T = 'T'.$i;
$$T = array(
'type' => $_POST['type_'.$i],
'hidden' => $_POST['hidden_'.$i],
'require' => $_POST['require_'.$i]);
if(isset($_POST['question_'.$i.'_list']))
${$T}['list'] = $_POST['question_'.$i.'_list'];
}
答案 1 :(得分:2)
问题是优先考虑的问题之一。首先解析$T['type']
,然后将其用作$___
的变量名。
由于$T
是一个字符串,['type']
是要获得的无效偏移量。
你可以这样做:
${$T}['type']
......我想。我不太会知道,因为像这样的东西是数组有点制造的;)
$T = array();
for( $i = 1; $i <= 15; $i++) {
$row = array(
"type" => $_POST['type_'.$i],
"hidden" => $_POST['hidden_'.$i],
"require" => $_POST['require_'.$i]
);
if( isset($_POST['question_'.$i.'_list'])) {
$row['question_'.$i.'_list'] = $_POST['question_'.$i.'_list'];
}
$T[] = $row;
}