PHP将字符串视为变量

时间:2010-03-30 06:44:05

标签: php

我在这里有一段代码,尽管我在其上使用$$将字符串视为变量,但该代码无效:

<? foreach (KOHANA::config('list.amenities_forms') as $k => $v) : ?>
        <div class="form">
            <fieldset>
                <legend><?php echo $v ?></legend>
                <input type="checkbox" name="<?=$k?>flag" id="<?=$k?>flag"/>
                <label class="inline"><?=$v?></label>

                <label>Description</label>
                <textarea cols="50" rows="5" name="<?=$k?>[]"><?= empty($$k[0]) ? '' : $$k[0]?></textarea>

                <label>Size</label>
                <input type="text" name="<?=$k?>[]" value="<?= empty($$k[1]) ? '' : $$k[1]?>"/>

                <label>Capacity</label>
                <input type="text" name="<?=$k?>[]" value="<?= empty($$k[2]) ? '' : $$k[2]?>"/>
            </fieldset>
        </div>
    <? endforeach?>

函数Kohana :: config返回此数组:

'amenities_forms' => array(
        'meeting_space' => 'Meeting Space',
        'breakfast_room' => 'Breakfast Room',
        'living_quarters' => 'Living Quarters',
        'restaurant' => 'Restaurant',
        'bar' => 'Bar'
    )

我可能做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为问题在于,当您只想使用{{1的内容时,PHP将$$k[0]解释为使用变量$k[0]中的字符串作为变量的名称。变量名称变量。使用$k代替,应该让PHP理解您想要做的事情,而不是将数组索引用作${$k}[0]变量的一部分。

例如,

$k

这将输出“bar”,但如果没有花括号,它将无效。