spse:pm3:php:objekty

Toto je starší verze dokumentu!


→ Slide 1

PHP objektově

→ Slide 2
↓ Slide 3
  • public (dříve také pomocí var u atributů)
  • protected
  • private
  • Pokud se u metody neuvede, považuje se metoda za public
↓ Slide 4
  • atributy i metody
  • použití slova static (public static function nazev(){})
  • volání u instančních:
    • uvnitř třídy:
 $this->metoda() 
  • volání mimo třídu:
 $objekt->metoda()
  • volání u statických:
    • uvnitř třídy:
self::metoda(), self::$atribut 
  • volání mimo třídu:
Trida::metoda(), Trida::$atribut
↓ Slide 5

Příklad Instance

class Matematika
{
    public function naDruhou($zaklad){
        return $zaklad *$zaklad;
    }
}
$matematika = new Matematika();
echo($matematika->naDruhou(12));
↓ Slide 6

Příklad Statický

class Matematika
{
    public static function naDruhou($zaklad){
        return $zaklad *$zaklad;
    }
}
echo(Matematika::naDruhou(12));
↓ Slide 7
 const PI_CISLO = 3.14159265358979;
 volání: Trida::PI_CISLO
//podobné jako definování jmenných konstant mimo OOP
 define(‘NAZEV_KONSTANTY’, ‘hodnota’);
→ Slide 8

normálně musíme každý skript s třídou načíst před použitím dané třídy (např. require_once)

// načte automaticky soubor s danou třídou ve složce classes 
function my_autoloader($class) {
    require_once 'classes/' . $class . '.class.php';
}
 
// registruje funkci jako pro potřeby automatického načítání
spl_autoload_register('my_autoloader');
→ Slide 9

Třída

<?php
class Clovek
{
 
    public function pozdrav()
    {
        echo('Ahoj');
    }
 
}
↓ Slide 10

Následující kód vytvoří instanci třídy člověk.

<?php
require_once('tridy/Clovek.php');
 
$karel = new Clovek();
$karel->pozdrav();
→ Slide 11
class Clovek
{
 
    public $jmeno;
    public $prijmeni;
    public $vek;
    private $unava = 0;
 
    public function __construct($jmeno, $prijmeni, $vek)
    {
        $this->jmeno = $jmeno;
        $this->prijmeni = $prijmeni;
        $this->vek = $vek;
    }
 
    public function spi($doba)
    {
        $this->unava -= $doba * 10;
        if ($this->unava < 0)
            $this->unava = 0;
    }
 
    public function behej($vzdalenost)
    {
        if ($this->unava + $vzdalenost <= 20)
            $this->unava += $vzdalenost;
        else
            echo('Jsem příliš unavený.');
    }
 
    public function pozdrav()
    {
        echo('Ahoj, já jsem ' . $this->jmeno);
    }
 
    public function __toString()
    {
        return $this->jmeno;
    }
 
}
↓ Slide 12
<?php
 
 
require_once('tridy/Clovek.php');
 
$karel = new Clovek('Karel', 'Novák', 30);
$jan = new Clovek('Jan', 'Nový', 24);
 
$karel->behej(10);
$karel->behej(10);
$karel->behej(10);
 
?>
  • spse/pm3/php/objekty.1615326735.txt.gz
  • Poslední úprava: 2024/07/07 16:48
  • (upraveno mimo DokuWiki)