PHP (skriptovací jazyk): Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
Kubo2 (diskusia | príspevky)
d →‎References: Kde sme?
Kubo2 (diskusia | príspevky)
→‎Ukážka kódu: Prepísané niektoré príklady, aktualizácia, rozšírenie, formulácia.
Riadok 75:
Ak vývojár vytvorí kópiu objektu pomocou rezervovaného slova clone, Zend engine skontroluje, či bola definovaná metóda __clone() alebo nie. Ak nie je tak sa zavolá predvolená metóda __clone(), ktorá skopíruje vlastnosti objektu. Ak je metóda __clone() definovaná, tak ona bude zodpovedná za nastavenie potrebných vlastností vo vytvorenom objekte. Pre pohodlie, jadro zaobstaráva funkciu, ktorá importuje vlastnosti zdrojového objektu, takže programátor môže začať s úplnou kópiou zdrojového objektu a iba nahradí vlastnosti, ktoré potrebuje zmeniť.<ref>{{cite web|accessdate=2008-03-16|url=http://www.php.net/language.oop5.cloning|title=Object cloning |publisher=The PHP Group}}</ref>
 
== UkážkaUkážky kódu ==
Prvý príklad zobrazí text "''Ahoj svet!"'' (všimnite si, že koncová značka <code>?></code> sa môže vynechať):
 
<source lang="php">
<?php
 
echo "Ahoj svet!\n";
?>
</source>
 
DruhýĎaľší príklad si uloží do poľa dĺžky [[Odvesna|odvesien]] ''a'' a ''b'' vypočíta [[Prepona|preponu]] trojuholníka pomocou [[Pytagorova veta|Pytagorovej vety]] (túto činnosť značne zautomatizuje PHP funkcia <code>[http://php.net/hypot hypot()]</code>):
 
<source lang="php">
<?php
 
$strana_a = 3; // strana a - premenná
// pole strán
$strana_b = 4; // strana b - premenná
$strany = [ "a" => 3, "b" => 4, "c" => NULL ]
$strana_c = hypot($strana_a,$strana_b); // výpočet strany c
 
echo $strana_c; // výpis dĺžky strany c do tela stránky
// použitie funkcie hypot() pre výpočet prepony
?>
$strany["c"] = hypot($strany['a'], $strany['b']);
 
// vypísanie dĺžky prepony na výstup
echo "Dĺžka prepony <i>c</i> je " . $strany['c'];
</source>
 
Tretí príklad ukazuje kombináciu PHP s HTML (inými slovami použitie PHPka ako šablónovací jazyk):
<source lang="php">
<h1>Príklad kombinácie PHP s HTML zdrojom</h1>
 
<h2>Výpis aktuálneho roku</h2>
<p>Práve sa píše rok <strongb><?php echo Date=date("Y"); ?></strong>.</p>
 
<h2>Výpis HTML zdroja</h2>
<?php
<?php echo "<p align=\"center\">Príklad 3. bol pridaný v roku 2006.</p>"; ?>
?>
 
<h2>Výpis HTML zdroja bez escapovania úvodzoviek znakom \</h2>
<?php
<?php echo '<p align="center">Príklad 3. bol pridaný v roku 2006.</p>'; ?>
?>
</source>
 
Štvrtý príklad ukazuje zastaralý spôsob <del>kombináciu</del>komunikácie PHP s databázovým serverom MySQL:.
<small>Tento príklad je ponechaný z historických dôvodov a '''nikdy nefungoval'''.</small>
<source lang="php">
Tento príklad ukazuje výber z MySQL databázy pomocou príkazu SELECT a následný výpis pomocou echo.
<p>Práve sa píše rok <strong><?php echo Date("Y"); ?></strong>.</p>
<?php $vyber = mysql_query("SELECT text FROM test WHERE id = '5'");
alebo
echo $vyber; ?>
<?php echo "<p align=\"center\">Príklad 3. bol pridaný v roku 2006.</p>"; ?>
novšie sa používa verzia echo ''; ktorá dovoľuje tagy bez zbytočných \ znakov, napríklad
<?php echo '<p align="center">Príklad 3. bol pridaný v roku 2006.</p>'; ?>
</source>
 
Posledný príklad demonštruje moderný a doporučovaný spôsob komunikácie PHPka a MySQL servera, používajúc PHP rozšírenie '''mysqli''' namiesto zastaralého rozšírenia ''mysql'':
Štvrtý príklad ukazuje kombináciu PHP s MySQL:
<source lang="PHP">
<?php
 
// získanie inštancie triedy mysqli
<source lang="php">
$socket = new mysqli('localhost', 'login', 'heslo', 'meno databázy');
Tento príklad ukazuje výber z MySQL databázy pomocou príkazu SELECT a následný výpis pomocou echo.
 
<?php $vyber = mysql_query("SELECT text FROM test WHERE id = '5'");
// overenie úspešnosti pripojenia
echo $vyber; ?>
if(!$socket->connect_errno) {
// poslanie dotazu
$výsledok = $socket->query("SELECT `autor`, `datum`, `nazov`, SUBSTRING(`text`, 1, 180) as `uputavka` FROM `articles`");
// overenie úspešnosti dotazu
if($výsledok) {
echo "<h1>Články</h1><dl>";
// prejdenie výsledku cyklom
while(NULL !== ($riadok = $výsledok->fetch_assoc())) {
// každý riadok je v poli $riadok s príslušnými indexami
echo "<dt>" . $riadok["nazov"] . "</dt>";
echo "<dd>" . $riadok["uputavka"] . "\n";
echo sprintf("<small>Pridal %s v čase %s</small></dd>", $riadok['autor'], date("j. n Y", strtotime($riadok["datum"])));
?>}
echo "</dl>";
} else {
// pri chybe skočíme preč z podmienky
goto error;
}
exit;
}
 
// značka, kam sa má skákať
error:
?>
<h1>Chyba</h1>
<p>Vyskytla sa chyba pri práci s databázou.
</source>