PHP将$variable保留在if语句范围之外

PHP将$variable保留在if语句范围之外,php,Php,我从另一个开发者那里得到了一个项目,我正试图完成并清理一下。这部分代码在检查语言cookie后呈现数据库中的产品: <?php if (get_cookie('spanish')) : ?> <?php if ($product['details_spanish'] != '') : ?>

我从另一个开发者那里得到了一个项目,我正试图完成并清理一下。这部分代码在检查语言cookie后呈现数据库中的产品:

                            <?php if (get_cookie('spanish')) : ?>
                                <?php if ($product['details_spanish'] != '') : ?>
                                    <?php $details = explode(':',$product['details_spanish']); ?>
                                    <h3>Especificaciones</h3>
                                <?php else : ?>
                                    <?php if ($product['details'] != '') : ?>
                                        <?php $details = explode(':',$product['details']); ?>
                                        <h3>Especificaciones</h3>
                                    <?php endif ?>
                                <?php endif; ?>

                            <?php else : ?>
                                <?php if ($product['details'] != '') : ?>
                                    <?php $details = explode(':',$product['details']); ?>
                                    <h3>Specifications</h3>
                                <?php endif; ?>

                            <?php endif; ?>
                            <ul>
                            <?php if ($details) : ?>
                                <?php foreach ($details as $detail) : ?>
                                <?php $detail = split(',',$detail); ?>
                                <?php if ($detail[0] != '' && $detail[1] != '') : ?>
                                <li>
                                    <strong><?=ucwords($detail[0])?></strong> : <?=$detail[1]?>
                                </li>
                                <?php endif; ?>
                                <?php $i++; ?>
                                <?php endforeach; ?>
                            <?php endif; ?>

特殊的
特殊的
规格
对不起,我知道这是很难阅读由于不一致和糟糕的编码(最初不是我的项目。它所做的是在用户计算机上检查西班牙语cookie。如果找到它,它将从表的西班牙语列而不是常规列中提取值。如果表中没有西班牙语值,它将使用英语值。此外,它还创建了一个
$details
变量,其中包含数据库的值,并将其拆分到
所在的位置

我遇到的问题是在一些产品上,它给了我一个错误,说它找不到$details变量,我假设这是因为变量不在第一个
if
语句的范围之外


我真的是一个php noob,但即使我也知道这不是一个好的做法。有没有更好的方法来清理这个问题并让我的$detail变量可用?

快速解决方法是在最顶端预先初始化该变量:

<?php $details = ''; ?>

快速解决方法是在最顶端预先初始化该变量:

<?php $details = ''; ?>


OMG!!!你不需要在每一行上都有一个开始和结束PHP标记我同意,这本来不是我的项目,所以想象一下我的惊喜:(OMG!!!你不需要在每一行上都有一个开始和结束PHP标记我同意,这本来不是我的项目,所以想象一下我的惊喜:(哇,这解决了我的3个问题!哇,这解决了我的3个问题!