PHP if 语句构建 URL

PHP if statement building URLs

我写了下面的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),URL 将以不同方式呈现。

if $maincat == 78,你永远不会进入else 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 ....

没有错误....

或者我误解了你的问题:

<?php

$url = "";

$subCat = 70; // 78

$mainCat = 1;

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

echo $url;

?>

最后,我修复了它:

$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;
    }

}