如何在foreach循环之外访问php变量

时间:2019-05-20 18:23:40

标签: php

我有一个名副其实的(num),用于将ID的名称递增1 num + 1,但是在我的foreachloop中,我无法访问它。

我尝试在循环仍然无法工作之前声明它

<?php $num = 0; ?>
<?php foreach($listings as $list):?>
    <li>
        <div class="checkbox">
            <input type="checkbox" class="css-checkbox" value="<?php echo $list['title'];?>" id="visit<?php echo $num+1;?>" name="treatment<?php echo $num+1;?>">
            <label for="visit<?php echo $num+1;?>" class="css-label"><?php echo $list['title']?> <strong><?php echo $list['price'];?><span>&#163;</span></strong></label>
        </div>
    </li>
<?php endforeach;   ?>
</ul>
<hr>
<input type="hidden" value="<?php echo $num;?>" name="total"/>

我希望输入id像treatment1treatment2

那样增加1。

2 个答案:

答案 0 :(得分:2)

您应该通过在循环内执行一次$num来递增$num++;变量,然后在不使用<?php echo $num; ?>的情况下使用<?php echo $num+1; ?>将其打印在需要的位置,因为这样做会仅在您回显它时增加它-不在每次迭代中添加一个。

<?php 
$num = 0;
foreach($listings as $list):
    $num++; // Increment $num for each iteration
    ?>
    <li>
        <div class="checkbox">
            <input type="checkbox" class="css-checkbox" value="<?php echo $list['title'];?>" id="visit<?php echo $num;?>" name="treatment<?php echo $num;?>">
            <label for="visit<?php echo $num;?>" class="css-label"><?php echo $list['title']?> <strong><?php echo $list['price'];?><span>&#163;</span></strong></label>
        </div>
    </li>
<?php endforeach; ?>

如果$listings是数字索引的,则可以使用

来使用数组中每个元素的键
foreach($listings as $num=>$list):
    ?>
    <li>
        <div class="checkbox">
            <input type="checkbox" class="css-checkbox" value="<?php echo $list['title'];?>" id="visit<?php echo $num;?>" name="treatment<?php echo $num;?>">
            <label for="visit<?php echo $num;?>" class="css-label"><?php echo $list['title']?> <strong><?php echo $list['price'];?><span>&#163;</span></strong></label>
        </div>
    </li>
<?php endforeach; ?>

答案 1 :(得分:1)

问题是您没有设置$ num变量的值,而只是在html标记内打印或回显它。您需要像这样在循环内添加或增加$ num变量。

 <?php $num++; ?>

 <?php $num = $num+1; ?>