2011-12-21 20 views
-1

ループを使用してチェックボックスをチェックする変数を動的に作成しています。実際には、1 & 0の組み合わせであるstringを使用して変数を作成しています。つまり、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が長くなると予想し、Cで指定された文字列:行38の\ XAMPP \ htdocsに\ shadaab \ user_auth.php

+4

array()を使用するほうがはるかに簡単です –

+0

実際、**配列**の機能を探しています! – deceze

+0

配列についても、私はsubstrをチェックする必要があります。この関数を使用する必要があります。 –

答えて

3

彼らは正しい、最善の解決策は単純に配列を使用することです:

for ($j = 0; $j <= 49; $j++) 
     if (substr($user_authorisation, $j, 1) == '1') 
      $user_authorisation_field[$j] = 'checked="checked"'; 

しかし、特に問題はあなたの変数をconcatinate方法にあります:$user_authorisation_field_ . $j

@Dongが行う方法を示していますそれは彼の答えで正しく。あなたは文字列として"user_authorisation_field_"を治療し、数とそれを組み合わせるしたいので、連結のは間違っている

理由があるが、あなたはunintentially UNDEFINEDある変数​​としてそれを使用しています。あなたがやっていることは、基本的に次のように評価されます:

UNDEFINED . 0 = 'string'; 
UNDEFINED . 1 = 'string'; 
UNDEFINED . 2 = 'string'; 

などは動作しません。

+0

参照する他の答えに直接リンクするのが通例です。位置を変えることができます。 – Herbert

+0

私はどのように連結しているのか正しくない方法。理由を明記してください。 –

2

は、それが配列を使用するためのより良い選択だ

${'user_authorisation_field_' . $j} = 'checked="checked"'; 

をお試しください!

関連する問題