php在循环中增加变量的名称

时间:2013-06-03 22:09:06

标签: php loops increment

我想到了一个while循环,但无法找到解决方法:

$foo1 = get_post_meta( $post->ID, '_item1', true );
if (!empty($foo1)){
    echo  ("<div class='$foo1'></div>"); 
}

$foo2 = get_post_meta( $post->ID, '_item2', true );
if (!empty($foo2)){
    echo  ("<div class='$foo2'></div>"); 
}

依此类推......一百次,直到达到$ foo100和_item100 有没有想过要实现这一点,不要一遍又一遍地重复这四行?

2 个答案:

答案 0 :(得分:2)

您不需要variable variables,只需要for这样的循环:

for( $i=1; $i<101; $i++ ) {
  $klass = get_post_meta( $post->ID, '_item' . $i, true );
  if( !empty($klass) ) {
     echo "<div class='$klass'></div>"; 
  }
}

只要您稍后不需要$fooX变量,此功能就可以使用。如果需要它们,则必须使用提到的变量变量或数组来收集所有值。

答案 1 :(得分:1)

你正在考虑while循环

您可以使用:

   $counter = 1;
   while ($counter< 100) // or whatever limit you have
   {
       $foo = get_post_meta( $post->ID, '_item' . $counter , true );
         if (!empty($foo)){
           echo  ("<div class='$foo' . $counter .' ></div>"); 
              }
     $counter++;
    } 

如果复制此代码,由于字符串连接,您可能会遇到一些编译错误。

基本上你需要将“_item”字符串与你当前的$ counter连接起来。

Here是一些字符串连接示例。

如果您有任何疑问,请与我们联系。