Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Jazyk PHP - pokračování

PDF
Stáhnout kompletní materiál zdarma (1.56 MB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

jako zavolána funkce __autoload().

jako zavolána funkce __autoload()

Zde se můžeme situaci zachránit.

Zde se můžeme situaci zachránit

Vyu

Vy žití

žit

 Využijeme funkci __

Využijeme funkci _ autoload

autoloa k vkládání souborů s 

k vkládání souborů s

definicí tříd v okamžiku jejich potřeby.

definicí tříd v okamžiku jejich potřeby

 Nahradíme tím instrukci 

Nahradíme tím instrukci include

includ _once

onc

– include

includ _once

onc je značně náročná 

je značně náročná

 Můžeme si zorganizovat 

Můžeme si zorganizovat struturu

strutur našeho projektu 

našeho projektu

takto

takt

/class

trida1.php

trida2.php
tridaš.php

Autoload

Autoloa

<?php
class Trida1 {

public $x = 1;

}
?> 

Soubor trida1.php, uložen v adresáři /class

Nějaký skript

kuk definiceA.php

<?php
function __autoload($classname) {

$file_name strtolower($classname).".php";
include("/class/".$file_name);

}

// trida A zatim nebyla definovana, bude zavolana fce __autoload
$a =

new Trida1();

echo $a->x;?>

kuk autoload.php

Typová kontrola (hinting)

Typová kontrola (hinting

 PHP 5 zavádí možnost kontroly typu složitých dat. 

PHP 5 zavádí možnost kontroly typu složitých dat.
typů (tedy objekty, pole)

typů (tedy objekty, pole

 Lze použít jen u parametrů funkcí/metod

Lze použít jen u parametrů funkcí/meto

// mejme tridu A
class A {

private $text = null;

// text je typu string, nemuzeme pouzit hinting, je to jednoduchy dat. typ
public function __construct($text) {

$this->text = $text;

}
public function getText(){

return $this->text;

}

}

// mejme jinou tridu
class B {

private $messages = array();
public function __construct() {}

// zde je typova kontrola, neni mozne volat jinak nez s instanci 
// tridy A jako param
public function addMessage(A $message) {

$this->messages[] = $message;

}
public function getMessages ($delimiter) {

return $this->messages;

}

}

$b = new B();//$b->addMessage("vzkaz");  // toto je chyba, neprojde pres type hinting
$b->addMessage(new A("vkaz")); // toto je OK, kontrola typu v poho

Témata, do kterých materiál patří