OOP v PHP: Iterace (opakování)
Iterace (volně přeloženo jako opakování, cyklus opakování) umožňuje přístup k objektům jakoby k polím.
Marcus Boerger vytvořil knihovnu SPL (Standard PHP Library), která obsahuje definice rozhraní, jež můžete implementovat do svých tříd a k nim následně přistupovat jako k polím.
Nejprve si ukážeme implementaci rozhraní Iterator. Obsahuje metody current() (vrací aktuální prvek pole), key() (vrací klíč prvku), next(), (posune interní ukazatel pole na další prvek), rewind() (posune interní ukazatel pole na první prvek) a valid() (kontroluje, zda pole obsahuje další prvky). Podívejte na následující příklad:
vlastnosti = $pole;
}
}
public function rewind(){
echo ‚Na začátek pole
‚;
reset($this->vlastnosti);
}
public function current(){
$promenna = current($this->vlastnosti);
echo „Vracím hodnotu: $promenna
„;
return $promenna;
}
public function key(){
$promenna = key($this->vlastnosti);
echo „Vracím klíč $promenna
„;
return $promenna;
}
public function next(){
$promenna = next($this->vlastnosti);
echo „Příští prvek pole: $promenna
„;
return $promenna;
}
public function valid(){
$promenna = $this->current() !== false;
echo „validita: $promenna
„;
return $promenna;
}
}
$pole = array(1,2,3);
$ins = new implementovanyIterator($pole);
foreach ($ins as $klic => $hodnota){
echo „$klic: $hodnota“;
}
?>
Tento příklad vypíše:
Na začátek pole
Vracím hodnotu: 1
validita: 1
Vracím hodnotu: 1
Vracím klíč 0
0: 1
Příští prvek pole: 2
Vracím hodnotu: 2
validita: 1
Vracím hodnotu: 2
Vracím klíč 1
1: 2
Příští prvek pole: 3
Vracím hodnotu: 3
validita: 1
Vracím hodnotu: 3
Vracím klíč 2
2: 3
Příští prvek pole:
Vracím hodnotu:
validita:
Protože vytváříme instanci, nejprve je volána metoda rewind(), následuje kontrola validity, která volá metodu current(), a po opětovném volání metody current() vracíme klíč pole. Příště již není volána metoda rewind(), ale next().
Vypsat všechny vlastnosti objektu je možné pomocí následujícího zápisu:
„;
foreach ($this as $vlastnost => $hodnota){
echo „$vlastnost : $hodnota
„;
}
}
}
$ins = new vypis();
$ins->VypisVlastnosti();
foreach ($ins as $vlastnost => $hodnota){
echo „$vlastnost : $hodnota
„;
}
?>
Tento skript vypíše:
Metoda VypisVlastnosti() byla volána
vlastnost1 : vlastnost 1
vlastnost2 : vlastnost 2
vlastnost3 : vlastnost 3
vlastnost4 : vlastnost 4
vlastnost5 : vlastnost 5
vlastnost1 : vlastnost 1
vlastnost2 : vlastnost 2
vlastnost3 : vlastnost 3
Všech pět vlastností bude vypsáno, protože uvnitř třídy jsou všechny vlastnosti veřejné, další tři vlastnosti jsou přístupné i mimo třídu.
Pozn. red.: Zdůrazňujeme, že tento text se týká PHP 5.
Mohlo by vás také zajímat
-
Co je to DNSSEC, jak funguje a jak si ho nastavit?
14. srpna 2024 -
Gaming na HDR monitoru: Stojí to za to?
12. srpna 2024 -
Od iPhonu po Android: Ultra HDR přináší nový standard fotografií
1. listopadu 2024 -
Webový správce souborů Filestash – dojmy a recenze
29. července 2024
Nejnovější
-
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 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024
element
Bře 13, 2015 v 16:46To jsou članky tohle to. Složitý jak ehm. Nechápu. Vždycky to ukazujete na tak hloupych prikladech. Katastrofa.
element
Bře 13, 2015 v 16:47Uvedom si pro koho to pises. Ti co tomu rozumi to uz nepotrebujou. Tohle ma byt pro zacatecniky v OOP ne? Pis to srozumitelneji.
Marek Machač
Bře 16, 2015 v 8:08Pěkný den, děkujeme za podnětné zpětné vazby. Vaše reakce na tento 9 let starý článek předáme autorovi.