2012-02-20 8 views
0

私はwhileループ内で動的にいくつかの変数名を作成しています作成します。変数名を動的

while($count < $agendaItemsCount) { 
     $tr_mcs_agendaitem_[$count]_1 = get_post_meta($post->ID, '_tr_mcs_agendaitem_' . $count . '_1', true); 
    ++ $count 
} 

しかし、このコードは、予期しない文字列の解析エラーの原因となっているが。どのようにしてこのコードを書いて、新しいvarが残りのvar名と共にcount変数の出力とともに宣言されるようにしますか?

+3

$collection = array(); while($count < $agendaItemsCount) { $collection['tr_mcs_agendaitem_'.$count.'_1'] = get_post_meta($post->ID, '_tr_mcs_agendaitem_' . $count . '_1', true); ++ $count; } extract($collection); 

別の解決策は、「variable variables」を使用することです配列? – Incognito

+0

[PHP変数変数]の可能な複製(http://stackoverflow.com/questions/4511948/php-variable-variables) – jprofitt

+0

@Incognito私は戻ってくるデータの制御がありません...私はワードプレスで働いています。中括弧は機能しません。$ tr_agendaitem _ {$ count} _1 = get_post_meta($ post-> ID、 'agendaitem_'。$ count。 '_1'、true);それでも構文エラーが発生する –

答えて

2

$tr_mcs_agendaitem_1_1,$tr_mcs_agendaitem_2_1などのような変数を作成したいですか? 私は配列を使用して助言している間、あなたは以下のことが可能です。で、キーと値のペアを使用していないために良い理由は何

while($count < $agendaItemsCount) { 
    $varname = 'tr_mcs_agendaitem_'.$count.'_1'; 
    $$varname = get_post_meta($post->ID, '_tr_mcs_agendaitem_' . $count . '_1', true); 
    ++ $count; 
} 
+0

配列を初期化することを忘れないでください:$ agendaItemsCountが0の場合に '$ collection = new array();'、 – talereader

+0

ありがとう!私はそれに応じて私の投稿を編集しました。 – chiborg