PHP if语句构建URL

时间:2015-09-09 11:45:46

标签: php if-statement

我写了以下IF语句

if ($mainCat && $subCat) {
    $url = "/subjects/".$mainCat->alias."/".$r->alias;
}

哪个效果很好。您可以在此处查看演示:http://217.199.187.199/equityschooltravel.co.uk/

但是我已经对它进行了扩展,并希望包含一个elseif,如果存在一个变量,但它不起作用:

if ($subCat == 78) {
    $url = "/subjects/".$mainCat->alias."/".$subCat->alias."/".$r->alias;
}
elseif ($mainCat && $subCat) {
    $url = "/subjects/".$mainCat->alias."/".$r->alias;
}

我们的想法是,如果选择ID为“78”的国家/地区($ subcat),则网址的呈现方式会有所不同。

3 个答案:

答案 0 :(得分:1)

如果$ maincat == 78,你永远不会输入if。检查if中是否存在不存在的subcat,然后如果设置了subcat,你将转到else if。

if ($main && !isset($subcat)) {
    $url = "/subjects/".$mainCat->alias."/".$r->alias;
}
elseif ($mainCat && $subCat) {
    $url = "/subjects/".$mainCat->alias"/".$subCat->alias."/".$r->alias;
}
else ....

答案 1 :(得分:1)

没有错误......

或者我可能误解了你的问题:

<?php

$url = "";

$subCat = 70; // 78

$mainCat = 1;

if ($mainCat && $subCat == 78) {
    $url = "subcat 78";
}
elseif ($mainCat && $subCat && $subCat != 78) {
    $url = "url other";
}

echo $url;

?>

答案 2 :(得分:0)

最后,我通过这样做来修复它:

$diffCats = array('76','77','78','79','80');

if ($mainCat && $subCat) {
    $url = "/subjects/".$mainCat->alias."/".$r->alias;

    if (in_array($subCat->id, $diffCats)) {
        $url = "/subjects/".$mainCat->alias."/".$subCat->alias."-language-trips/".$r->alias;
    }

}