首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP in_array看看有没有更好的方法

PHP in_array看看有没有更好的方法
EN

Stack Overflow用户
提问于 2012-11-30 21:49:02
回答 2查看 80关注 0票数 0

我的许多网站共享相同的资产,信用卡就是其中之一。所以我创建了一个包含所有信用卡图标的精灵。

在我的info文件中,我有一个变量,如下所示:

代码语言:javascript
复制
$credit_cards = array("visa", "mastercard", "discover", "amex");

然后在我显示图标的页脚中,我有类似这样的东西:

代码语言:javascript
复制
<?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个主要的片段。

有没有更好的方法来做这件事?我知道上面的解决方案真的很混乱,我觉得必须有一个更干净的解决方案。我只是需要一些你认为最好的建议。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-30 21:51:23

代码语言:javascript
复制
foreach ($credit_cards as $card) {
    echo "<span class='card-$card'></span>";
}

这就是一致的命名方案的好处所在。

票数 9
EN

Stack Overflow用户

发布于 2012-11-30 21:54:41

不知道你说的“更好”是什么意思,但你至少可以排除共享代码:

代码语言:javascript
复制
<?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');
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13646550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档