使用foreach打印$ GLOBALS

时间:2015-02-02 14:27:18

标签: php html

所以我需要在我的页面上打印出一堆预定义的全局变量。我尝试使用:

<?php foreach ( $GLOBALS as $key => $value ) { ?>
  <dt><label for="<?php echo $key ?>">$key</label></dt>
    <dd><input type="text" name="<?php echo $key ?>" value="<?php echo $value ?>" /></dd>
<?php } ?>

但是这不会打印全局变量,而只会打印一些错误。 我怎样才能正确获得该列表? 我希望你能理解我想要的东西。 谢谢!

3 个答案:

答案 0 :(得分:1)

我完全避免使用foreach循环:

<?php print_r($GLOBALS); ?>

我不确定我需要在html中打印全局变量的实例,除了调试之外。

您可能会遇到全局变量递归问题,因此您可能会执行以下操作:

<?php 
$myGlobals = array();
foreach($GLOBALS as $key => $value ) {
  if ($key == 'GLOBALS') { 
    continue; 
  } else {
  $myGlobals[$key] = $value;
  }
}
foreach ($myGlobals as $key => $value ) { ?>
  <dt><label for="<?php echo $key ?>">$key</label></dt>
  <dd><input type="text" name="<?php echo $key ?>" value="<?php echo $value ?>" /></dd>
<?php } ?>

那应该跳过将嵌套的GLOBALS数组添加到数组中,以便在没有它的情况下打印所有其他键。

答案 1 :(得分:0)

//shows all used arrays in a page excluding post, get, files, session and
//GLOBALS arrays

function used_arrays() {
    $ark=array_keys($GLOBALS);
    $arr=array();
    foreach ($ark as $key => $value) {
        if($value!= '_GET' and $value!= '_POST' and $value!= '_COOKIE' and $value!= '_FILES' and $value!= 'GLOBALS' )
            array_push($arr,$value);
    }

    $arr2=array();
    foreach ($arr as $value) {
        $arr2[$value]=$GLOBALS['GLOBALS'][$value];
    }
    echo 'used_arrays<pre>';print_r($arr2);echo '</pre>';
}

//calling
used_arrays();

答案 2 :(得分:-1)

修正了它。

<?php foreach ( $GLOBALS as $key => $value ) { ?>
  <dt><label for="<?php echo $key ?>"><?php echo $key ?></label></dt>
    <dd><input type="text" name="<?php echo $key ?>" value="<?php echo $value ?>" /></dd>
<?php } ?>