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
-
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
AI v programování: Jak používat GitHub Copilot (část 1)
12. února 2024 -
Jak se chránit před podvody na internetu – část 2
14. října 2024
Nejnovější
-
-
-
LAMP VPS: Rychlé a efektivní nasazení webových aplikací
6. února 2025 -
OpenAI zpřístupnilo ChatGPT Search všem uživatelům
6. února 2025
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.