Diskuze: if(isset($_GET - 2x
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Jestliže máš nějaký seznam složek, ve kterých chceš hledat, ulož je do pole a procházej je cyklem:
if (isset($_GET['page'])) {
$dir = ['inc', 'dalsi-slozka']; // Seznam složek, ve kterých se bude hledat
for ($i = 0, $l = count($dir); $i < $l; $i++) {
if (file_exists($dir[$i] . '/' . $_GET["page"] . '.php')) { // Pokud se najde soubor, includuje se a cyklus se zastaví
include $dir[$i] . '/' . $_GET["page"] . '.php';
break;
}
if ($i === $l - 1) { // Pokud je cyklus ve své poslední fázi a stále se nenašla žádná stránka
echo 'Stránka nenalezena';
}
}
}
Díky moc hned jak to bude možné odskouším ale věřím že to bude ok ! Super hned mám lepší den.
Místo foru použij určitě foreach, tohle akorát zbytečně znepřehledňuje kód.
$dirs = [...]
$return = FALSE;
foreach ($dirs as $dir) {
if (file_exists($dir . '/' . $_GET["page"] . '.php')) {
$return = include $dir . '/' . $_GET["page"] . '.php'; // include při nalezení souboru vrací 1, což == TRUE
}
}
if (!$return)
echo 'Stránka nenalezena';
Zbavíš se dlouhého a nepřehledného zápisu for, plus k tomu ještě nemusíš psát $dir[$i], ale stačí jen $dir. Navíc jde takhle elegantněji vyřešit ten error při nenalezení stránky.
Takhle?
Teprv začínám ... tak se nesměj
if (isset($_GET['page'])) {
$dirs = ['inc', 'dalsi-slozka']
$return = FALSE;
foreach ($dirs as $dir) {
if (file_exists($dir . '/' . $_GET["page"] . '.php')) {
$return = include $dir . '/' . $_GET["page"] . '.php'; // include při nalezení souboru vrací 1, což == TRUE
}
}
if (!$return)
echo 'Stránka nenalezena';
}
Zobrazeno 8 zpráv z 8.