我动态创建变量以使用循环检查复选框。实际上,我正在使用1和1的组合的字符串创建变量。 0. viz .. 1010101000110
。就像这样。我的字符串长度是50。
$user_authorisation = fetch_table_user($uid, '1', '12');
for ($j = 0; $j <= 49; $j++) {
if (substr($user_authorisation, $j, 1) == '1') {
$user_authorisation_field_ . $j = 'checked="checked"';
}
}
我的错误是: 警告:substr()期望参数2为long,第38行的C:\ xampp \ htdocs \ shadaab \ user_auth.php中给出的字符串
答案 0 :(得分:3)
他们是对的,最好的解决方案是简单地使用数组:
for ($j = 0; $j <= 49; $j++)
if (substr($user_authorisation, $j, 1) == '1')
$user_authorisation_field[$j] = 'checked="checked"';
但是,具体来说,你的问题在于你如何整合你的变量:$user_authorisation_field_ . $j
@Dong在他的回答中展示了如何正确地做到这一点。
连接错误的原因是因为您希望将"user_authorisation_field_"
视为字符串并将其与数字相结合,但您无意中将其用作变量$user_authorisation_field_
UNDEFINED
}。所以你所做的基本上是评估为:
UNDEFINED . 0 = 'string';
UNDEFINED . 1 = 'string';
UNDEFINED . 2 = 'string';
等。不起作用。
答案 1 :(得分:2)
尝试
${'user_authorisation_field_' . $j} = 'checked="checked"';
使用数组是更好的选择!