OOP v PHP: Statické vlastnosti a metody
PHP nám dovoluje definovat metodu nebo vlastnost jako statickou. Znamená to, že se váže na třídu a nikoli na danou instanci. Statická metoda se definuje frází „static“, které se uvádí po klíčových slovech viditelnosti.
Ke statické metodě či vlastnosti není možné přistupovat pomocí pseudoproměnné $this
. Statické metody voláme pomocí zápisu JménoTřídy::StatickáMetoda()
, vlastnosti pomocí syntaxe JménoTřídy::$StatickáVlastnost
.
Pokud chceme přistupovat ke statickým metodám či vlastnostem uvnitř třídy, používáme místo jména třídy klíčová slova self::
nebo parent::
.
Následující příklad přiřadí každé instanci jedinečné ID:
<?php class Trida{ public static $pocitadlo = 0; public $id; public $pocitadlo_nestaticke = 0; public $id_nestaticke; public function __construct(){ $this->id = self::$pocitadlo++; $this->id_nestaticke = $this->pocitadlo_nestaticke++; } } $instance = new Trida(); echo $instance->id; echo $instance->id_nestaticke; $instance = new Trida(); echo $instance->id; echo $instance->id_nestaticke; ?>
Příklad vypíše čtyři čísla (0010), $instance->id
bude mít vždy jinou hodnotu, u $instance->id_nestaticke
bude vždy hodnota stejná.
Pozn. red.: Zdůrazňujeme, že tento text se týká PHP 5.
Mohlo by vás také zajímat
-
Certifikáty Entrust ztratí důvěru Google Chrome
8. července 2024 -
Užitečné nástroje pro bezpečnost na internetu
17. října 2024 -
ZONER Webmail jako první v Česku přináší BIMI s VMC
11. července 2024 -
Lék na phishing a apatii ve světě e-mailového marketingu
18. března 2024
Nejnovější
-
Dostali jste k vánocům PC? Využijte jeho AI potenciál!
3. ledna 2025 -
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024
Joey
Zář 8, 2011 v 7:47$this->id = self::$pocitadlo++;;; tento řádek znamená, že nejdříve se uloží do id = 0 a až následně se zvýší o 1? Jedná se tedy o postfix?
Díky za odpověď, nejsem si jistý.
Alt+F4
Pro 6, 2011 v 12:39Víceméně to tak je. I když ve skutečnosti se fakticky ukládá přímo 1. Jinak nejedná se o postfix, ale postinkrement. Další možnosti jsou postdekrement ($i–), preinkrement (++$i) a překvapivě predekrement (–$i).
Jan
Srp 19, 2012 v 20:41Chcem sa spytat ako teda ovplyvnuje ta statická premenna vysledok pretoze to skusam a stale vyde to iste bez static a aj s. dakujem
Adriana
Čvn 8, 2017 v 11:40Pridajte si tento kód, viacej krát pod seba
$instance = new Trida();
echo $instance->id;
echo $instance->id_nestaticke;