使用字符串动态创建变量

时间:2011-12-21 02:38:13

标签: php

我动态创建变量以使用循环检查复选框。实际上,我正在使用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中给出的字符串

2 个答案:

答案 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"';

使用数组是更好的选择!