我的许多网站共享相同的资产,信用卡就是其中之一。所以我创建了一个包含所有信用卡图标的精灵。
在我的info文件中,我有一个变量,如下所示:
$credit_cards = array("visa", "mastercard", "discover", "amex");然后在我显示图标的页脚中,我有类似这样的东西:
<?php
if (in_array("visa", $credit_cards)) {
echo "<span class='card-visa'></span>";
}
if (in_array("mastercard", $credit_cards)) {
echo "<span class='card-mastercard'></span>";
}
if (in_array("discover", $credit_cards)) {
echo "<span class='card-discover'></span>";
}
if (in_array("amex", $credit_cards)) {
echo "<span class='card-amex'></span>";
}
?>所以在我的起始模板上,我所要做的就是编辑信息文件,并选择我想要显示的信用卡。如果将来客户想要添加或删除他们不再接受的卡,我只需将其从数组中删除。
你可能会认为这很疯狂,但除了四大信用卡之外,还有更多的东西。这是为汽车行业,还有很多其他卡片,如wright,固特异,carcare,通用电气,壳牌等,我刚刚粘贴了4个主要的片段。
有没有更好的方法来做这件事?我知道上面的解决方案真的很混乱,我觉得必须有一个更干净的解决方案。我只是需要一些你认为最好的建议。
谢谢!
发布于 2012-11-30 21:51:23
foreach ($credit_cards as $card) {
echo "<span class='card-$card'></span>";
}这就是一致的命名方案的好处所在。
发布于 2012-11-30 21:54:41
不知道你说的“更好”是什么意思,但你至少可以排除共享代码:
<?php
function print_card($card) {
if (in_array($card, $GLOBALS['credit_cards'])) {
echo "<span class='card-$card'></span>";
}
}
print_card('visa');
print_card('mastercard');
print_card('discover');
print_card('amex');
?>https://stackoverflow.com/questions/13646550
复制相似问题