动态创建变量名称

时间:2012-02-20 13:59:59

标签: php

我在while循环中动态创建一些变量名称:

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

但是此代码导致意外的字符串解析错误。如何编写此代码,以便使用count变量输出以及var名称的其余部分声明新的var?

1 个答案:

答案 0 :(得分:2)

所以你想创建像$tr_mcs_agendaitem_1_1$tr_mcs_agendaitem_2_1等变量? 虽然我建议使用数组,但您可以执行以下操作:

$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”:

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