NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Výpis proměnných v inkludnutých souborech a definovaných v aktuálním souboru

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:13.3.2017 15:37

Ahoj, nevím si rady, nejsme zrovna moc pokročilý. Chtěl jsem si napsat jednoduchou funkci, která mi podle parametru z GET includne odpovídající stránku se šablonou. Problém je s vypsáním proměnné definované v souboru.
PHP:

function zobraz(){
        require('page/'.$_GET['page'].'.php');
    }

    $pageName = 'Název stránky';
    zobraz();

HTML šablona:

<title><?= $pageName ?> - Podstránka</title>

šablona se includne ale místo "Název stránky" e vypíše, že proměnná $pageName není definovaná. Funguje v případě že nepoužiji funkci:

$pageName = 'Název stránky';
require('page/'.$_GET['page'].'.php');

Moje otázka zní: Proč? a jak to udělat aby to takhle fungovalo i s použitím funkce? Díky za rady.

 
Odpovědět
13.3.2017 15:37
Avatar
Odpovídá na Ondřej Pech
Uživatel sítě :13.3.2017 15:40
function zobraz(){
    global $pageName;
    require('page/'.$_GET['page'].'.php');
}

Edit:

Ještě to můžeš vložit jako argument funkce.

Editováno 13.3.2017 15:41
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
13.3.2017 15:40
Chybami se člověk učí, běžte se učit jinam!
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:13.3.2017 15:50

Oukej. A ještě jeden dotaz: Můžu tu proměnou definovat jako globální i nějak mimo funkci? nebo musím v každé funkci kde s tím budu nějak pracovat psát "global $promena; ?

 
Nahoru Odpovědět
13.3.2017 15:50
Avatar
Odpovídá na Ondřej Pech
Uživatel sítě :13.3.2017 15:54

Můžeš ji ještě definovat jako konstantu: http://php.net/…n.define.php

Nahoru Odpovědět
13.3.2017 15:54
Chybami se člověk učí, běžte se učit jinam!
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Uživatel sítě
ConflictBoy:13.3.2017 16:11

Rozhodně ve funkci zobraz nezapomeň ověření, zda soubor existuje, tedy:

function zobraz(){
    global $pageName;
    if (file_exists('page/'.$_GET['page'].'.php')) {
        require('page/'.$_GET['page'].'.php');
    }
    else {
        //zobraz 404
    }
}
Nahoru Odpovědět
13.3.2017 16:11
I'm programmer, I have no life :)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.