NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!

Diskuze: Struktura skriptu PHP a používání Heredoc

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

Aktivity
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Kit:2.1.2014 15:11

Je dobré se držet zásady, že <?php je v každém souboru pouze 1× - a to výhradně na začátku.

Odpovědět
2.1.2014 15:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Michal Žůrek - misaz:2.1.2014 15:13

v html souboru bude až ho budeme potřebovat (čili při vypisování adresy) a randomImage je celý čistě php, tak tam je na začátku. Nebo kde ho mám 2×?

V javascriptu samozřejmě nebude nikde.

Editováno 2.1.2014 15:16
 
Nahoru Odpovědět
2.1.2014 15:13
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Kit:2.1.2014 15:18
<img src="<?php include("randomImage.php") ?>" alt="náhodný obrázek" id="obr" />

Tady ho na začátku rozhodně nemáš. HTML a PHP se nemá míchat.

?> není vůbec potřebné, nahradí ho konec souboru.

Editováno 2.1.2014 15:19
Nahoru Odpovědět
2.1.2014 15:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Kit
mkub:2.1.2014 15:23

lebo z toho vznikne pekne okoreneny gulas... ja som tiez na tom miesani HTML a PHP uz popalil, preto v celom PHP skripte uz pouzivam iba jedno <?php a vyuzivam heredoc na generovanie stranky a v heredoc sa daju vyuzivat aj premenne, escape sekvencie

 
Nahoru Odpovědět
2.1.2014 15:23
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Kit:2.1.2014 15:24

V mé aplikaci by to vypadalo asi takto:

<?php
$image = new RandomImage();
echo $image;

nebo i takto:

<?php
echo new RandomImage();
Editováno 2.1.2014 15:25
Nahoru Odpovědět
2.1.2014 15:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Michal Žůrek - misaz:2.1.2014 15:35

ale pořád, jak toto vypšeš do atributu src u img?

 
Nahoru Odpovědět
2.1.2014 15:35
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Kit:2.1.2014 15:36

Třída RandomImage pak bude vypadat asi takto:

<?php
class RandomImage {
    private $image;

    function __construct() {
        $this->image = "images/" . rand(0, 99) . ".png";
    }

    function __toString() {
        return <<<EOT
<img src="$this->image" alt="náhodný obrázek" id="obr" />
EOT;
    }
}
Editováno 2.1.2014 15:37
Nahoru Odpovědět
2.1.2014 15:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Kit:2.1.2014 15:41

To nevypisuji do atributu src, ale vypisuji celý img.

Nahoru Odpovědět
2.1.2014 15:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
mkub:2.1.2014 15:50

Kit vyuziva dalsiu definiciu retazcovej premennej - heredoc a tento zapis je lepsi nez stovky funkcii echo () so znackami <?php...?> a okrem toho to umoznuje mat znacku <?php iba jeden krat a to na zaciatku suboru

 
Nahoru Odpovědět
2.1.2014 15:50
Avatar
Kit
Tvůrce
Avatar
Odpovídá na mkub
Kit:2.1.2014 15:54

Hlavní viditelný efekt je ten, že nemusím escapovat uvozovky a že přímo do textu mohu vkládat celé objekty. To mi zajistí potřebnou párovost tagů a tím i validitu dokumentů.

Nahoru Odpovědět
2.1.2014 15:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Kit
mkub:2.1.2014 16:12

trosku som tuto vlastnost toho heredoc prehliadol :[

 
Nahoru Odpovědět
2.1.2014 16:12
Avatar
Odpovídá na mkub
Michal Žůrek - misaz:2.1.2014 16:30

Já vím co je heredoc.

 
Nahoru Odpovědět
2.1.2014 16:30
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 12 zpráv z 12.