PHP动态变量

时间:2015-05-13 04:56:11

标签: php

我要显示30个变量,但写30次代码并不聪明。我该如何改进这段代码?谢谢!!

<?php if ($dimension_01_label) { ?> 
  <tr>
     <td><?= $dimension_01_label ?></td>
     <td><?= $dimension_01 ?></td>
  </tr>
<?php }; ?>
<?php if ($dimension_02_label) { ?> 
  <tr>
    <td><?= $dimension_02_label ?></td>
    <td><?= $dimension_02 ?></td>
  </tr>
<?php }; ?>
<?php if ($dimension_03_label) { ?> 
  <tr>
    <td><?= $dimension_03_label ?></td>
    <td><?= $dimension_03 ?></td>
  </tr>
<?php }; ?>

5 个答案:

答案 0 :(得分:1)

您可以使用两件事:

  1. 使用数组并通过它迭代
  2. 通过{}示例使用动态变量:Dynamic variable names in PHP

答案 1 :(得分:0)

您可以使用variable of variable -

for($i = 1; $i <=30; $i++) {
    $var1 = "dimension_".str_pad($i, 2, 0, STR_PAD_LEFT)."_label";
    $var2 = "dimension_".str_pad($i, 2, 0, STR_PAD_LEFT);
    if ($$var1) {
       echo "<td>".$$var1."</td><td>".$$var2."</td>";
    }
}

Chekc Demo

答案 2 :(得分:0)

<?php
for($i = 1; $i++; $i<=30){
    ?>
    <tr>
     <td><?php print $dimension_.$i."_label"; ?></td>
     <td><?php print $dimension_.$i; ?></td>
  </tr>
    <?php
}
?>

答案 3 :(得分:0)

如果你重新编写变量结构并使用数组会更容易,但使用当前格式你可以做类似的事情 -

<?php
 for($i=1;$i<=30;$i++){
     if (${"dimension_".str_pad($i, 2, "0", STR_PAD_LEFT)."_label"}) { ?> 
  <tr>
     <td><?= ${"dimension_".str_pad($i, 2, "0", STR_PAD_LEFT)."_label"} ?></td>
     <td><?= ${"dimension_".str_pad($i, 2, "0", STR_PAD_LEFT)} ?></td>
  </tr>
<?php 
     }
  } 
?>

答案 4 :(得分:0)

使用类似的东西

$dimension[0] = something;
$dimension[1] = something;

依旧......

并在印刷时

for($i=0;$i<count($dimension);$i++)
{ ?>
<tr>
 <td><?= $dimension[$i] ?></td>
 <td><?= $dimension[$i] ?></td>
</tr>
<?php
}

?>