如何打印定义的常量数组?

时间:2014-11-19 04:22:49

标签: php arrays constants

我认为我有一个简单的问题,但我无法找到我看错了!

我有一个数组,其中有一些字符串:

$tipus_membre = array("lider","colider","vetera","membre");

并且定义了这个字符串:

define("LIDER","Leader");
define("COLIDER","Co-leader");
define("VETERA","Elder");
define("MEMBRE","Member");

我正在尝试以某种形式打印,但我无法得到它。有了这个第一个选项,我只得到名字“lider”,“colider”......:

<select name="cla_tipus" required>
<?php
for($i=0;$i<count($tipus_clan);$i++){
    echo '<option value="'.$i.'">'.$tipus_membre[$i].'</option>';
}
?>
 </select> 

如果我说:
      常数($ tipus_clan [$ I]);

我一无所获。

(编辑$ var)

4 个答案:

答案 0 :(得分:3)

这应该适合你:

<?php

    define("LIDER", "Leader");
    define("COLIDER", "Co-leader");
    define("VETERA", "Elder");
    define("MEMBRE", "Member");

    $tipus_membre = array(LIDER, COLIDER, VETERA, MEMBRE);

?>

<select name="cla_tipus" required>
    <?php

        foreach($tipus_membre as $k => $v)
            echo "<option value='" . $v . "'>" . $tipus_membre[$k] . "</option>";
    ?>
</select> 

答案 1 :(得分:2)

您的代码存在多个问题

for($i=0;$i<count($tipus_clan);$i++){
    echo '<option value="'.$i.'">'.$tipus_clan[$i].'</option>';
}

你实际上在上面定义$ tipus_membre,然后你在for循环中使用$ tipus_clan ......这是不存在的。将上述内容更改为

for($i=0;$i<count($tipus_membre);$i++){
    echo '<option value="'.$i.'">'.$tipus_membre[$i].'</option>';
}

此外,constant()区分大小写;你需要以大写形式定义$ tipus_membre中的所有内容(或者在调用constant()时将它们转换为大写)以获取要定义的常量,否则你将得到一个未定义的警告。

答案 2 :(得分:1)

常量区分大小写,也许尝试使您的数组全部为大写,您可以使用

strtoupper()

功能大写

答案 3 :(得分:0)

感谢大家的快速回答,最后问题出在你所说的地方,区分大小写。

现在代码只需稍加改动就可以了:

<?php
for($i=0;$i<count($tipus_clan);$i++){
    echo '<option value="'.$i.'">'.constant(strtoupper($tipus_membre[$i])).'</option>';
}
?>