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
-
Moderní trendy ve webdesignu: Top trendy pro rok 2024
12. ledna 2024 -
Lék na phishing a apatii ve světě e-mailového marketingu
18. března 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. 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.