Belajar PHP OOP Part 1.28 : Object Iteration

object iteration

  • Saat kita membuat object dari sebuah class, kita bisa melakukan iterasi ke semua properties yang terdapat di object tersebut menggunakan foreach
  • Hal ini mempermudah kita saat ini mengakses semua properies yang ada di object
  • Secara default, hanya properties yang public yang bisa diakses oleh foreach

<?php

class Data
{
    var string $first = "First";
    public string $second = "Second";
    private string $third = "Third";
    protected string $forth = "Forth";
}

$data = new Data ();

foreach ($data as $property => $value){
    echo "$property : $value" . PHP_EOL;
}

Object Iteration

Iterator

  • Sebelumnya kita melakukan iterasi data di properties secara otomatis menggunakan foreach
  • Jika kita ingin menangani hal ini secara manual, kita bisa menggunakan iterator
  • Iterator adalah interface yang digunakan untuk melakukan iterasi, namun membuat iterator  secara manual lumayan cukup ribet, oleh karena itu sekarang kita akan gunakan Array Iterator, yaitu iterator yang menggunakan array sebagai data iterasi nya
  • Dan agar class kita bisa di iterasi secara manual, kita bisa menggunakan interface Iterator Aggregate, disana kita hanya butuh meng-override function getIterator() yang mengembalikan data iterator
<?php

class Data implements IteratorAggregate
{
    var string $first = "First";
    public string $second = "Second";
    private string $third = "Third";
    protected string $forth = "Forth";

    public function getIterator()
    {
        $array = [
          "first" => "first",
          "second" => "second",
          "third" => "third",
          "forth" => "forth"
        ];

        return new ArrayIterator($array);
    }
}

$data = new Data ();

foreach ($data as $property => $value){
    echo "$property : $value" . PHP_EOL;
}

iterator

Next Post Previous Post
No Comment
Add Comment
comment url