Извините, если это не поможет вашей первоначальной проблеме, но вы могли бы немного улучшить свою логику и читабельность кода.Вот как выглядит больше строк, чем в оригинальном посте.Посмотрите на комментарии.
<?php
if( !empty($_GET["page"]) ) {
if( $_GET["page"] == "1" ) {
include("./page/1.php");
}
else {
if( $_GET["page"] == "2" ) {
include("./page/2.php");
}
else {
//opening if, closing much later
if( $_GET["page"] == "3" ) {
//opening if, closing much later
if( !empty($_GET["site"]) ) {
if( $_GET["site"] == "1" ) {
include("./page/3.1.php");
}
else {
if( $_GET["site"] == "2" ) {
include("./page/3.2.php");
}
}
}
else {
include("./page/3.0.php"); // problem
}
}
//why not use elseif or plain if?
else {
if( $_GET["page"] == "4" ) {
include("./page/4.php");
}
//why not use elseif or plain if?
else {
if( $_GET["page"] == "5" ) {
include("./page/5.php");
}
else {
if( $_GET["page"] == "6" ) {
include("./page/6.php");
}
}
}}}}//two ending ifs and two elses?
include("footer.php");
}
else {
header("Location: ./index.php?page=1");
}
?>
Для меня это почти невозможно понять.Если вы не хотите использовать оператор switch
, вы все равно можете упростить приведенный ниже код, используя простые операторы if
или elseif
s.Я не вижу какой-либо конкретной причины для двух открывающих if
s и else
s, которые заканчиваются в конце скрипта: у вас есть только две используемые GET
переменные.
Вы также можетесовместить условия.Зачем использовать следующее?
if( !empty($_GET["page"]) ) {
if( $_GET["page"] == "1" ) {
Когда вы можете использовать:
if( !empty($_GET["page"]) && $_GET["page"] == "1") {
Одно отверстие if
лучше, чем одно ...
РЕДАКТИРОВАТЬ: Посколькуотрицательный голос, я просто сделаю вещи лучше или хуже.Может помочь читабельность или нет.Я думаю, у всех нас есть свои способы чтения и написания кода ...
Это то, что пришло мне в голову час назад.Зачем проверять каждое возможное число, если код ниже работает?(Не проверял, поэтому не знаю.)
$getPage = $_GET['page'];
$getSite = $_GET['site'];
if (isset($getPage) && isset($getSite)){
include("./page/$getPage.$getSite.php");
}
elseif (isset($getPage) && !isset($getSite)){
include("./page/$getPage.php");
}
else {
header("Location: ./index.php?page=1");
}