我从另一位开发者那里拿到了一个项目,我正在尝试完成并清理一下。这部分代码在检查语言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变量,我假设它是因为变量不在第一个范围之外。 {1}}陈述?
我真的是一个PHP菜鸟,但即使我知道这不是一个好习惯。有没有更好的方法来清理它并让我的$ detail变量可用?
答案 0 :(得分:4)
快速解决方法是在最顶层预先初始化该变量:
<?php $details = ''; ?>