Cara menggunakan php iterable type

Cara menggunakan php iterable type

  • Cari disini...
  • Courses

    • Kategori

    • Web Development

    • Mobile Development

    • Studi Kasus

    • Fundamental

    • Pemula

    • Teknologi Populer

    • Laravel

    • PHP

    • Kotlin

    • Android

    • Javascript

    • Wordpress

    • Database

    • Semua Kelas

    • Flashsale

    • Popular

    • Mentor

    • Roadmap

  • Explore

    • Karir

      Temukan Karirmu

    • Tutorial & Artikel

      Temukan Artikel menarik

    • Podcast

      Podcast seputar pemrograman

    • Webinar

      Ikuti Berbagai Webinar

    • Event

      Temukan Event menarik

    • Beasiswa

      Program Beasiswa

    • Discord

      Komunitas Discord

    • Forum

      Diskusi antar Programmer

    • Leaderboard

      Ranking siswa Codepolitan

  • Partnership

    • For Company

      Solusi tepat untuk perusahaan

    • For School

      Kerjasama untuk sekolah

    • For Campus

      Kerjasama untuk kampus

    • For Mentor

      Peluang penghasilan untuk mentor

LoginRegister

You are here: Home / PHP / Tutorial PHP OOP Part 18 : Perulangan Object Dengan Interface Iterator

Cara menggunakan php iterable type

Perulangan object atau dalam bahasa inggris disebut dengan object iteration adalah sebuah perulangan dalam menampilkan properti yang ada dalam object. PHP memberi jalan bagi sebuah object agar bisa didefinisikan, jadi dalam hal ini dimungkinkan membuat perulangan melalui sebuah daftar item misalnya menggunakan foreach. Secara default semua properti yang visible akan ditampilkan termasuk properti protected dan private.

Perulangan object secara sederhana

 <?php  
class MyClass
{
public $var1 = 'value 1';
public $var2 = 'value 2';
public $var3 = 'value 3';

protected $protected = 'protected var';
private $private = 'private var';

function Ulang() {
echo "MyClass::Ulang :<br/>";
foreach($this as $key => $value) {
print "$key => $value<br/>";
}
}
}

$class = new MyClass();

foreach($class as $key => $value) {
print "$key => $value<br/>";
}

echo "<br/>";

$class->Ulang();
?>

Program diatas akan menampilkan :

var1 => value 1
var2 => value 2
var3 => value 3

MyClass::Ulang:
var1 => value 1
var2 => value 2
var3 => value 3
protected => protected var
private => private var

Perulangan object dengan Interface “Iterator”

PHP menyediakan sebuah interface untuk menangani perulangan object yang diberi nama Iterator. Dengan sebuah interface Iterator, sebuah object dapat menentukan bagaimana sebuah object akan diulang dan nilai apa saja yang tersedia pada setiap perulangan.

Interface Iterator digunakan untuk mengakses dan atau memanipulasi sebuah array/list. Dengan mengimplementasikan interface Iterator maka kita dapat menggunakan foreach pada class yang dibuat seperti halnya array.

Interface Iterator memiliki 5 fungsi yang harus diimplementasikan, yaitu :

  1. rewind(), mereset pointer array kembali 0 atau awal
  2. current(), mengembalikan nilai elemen dari pointer saat ini.
  3. key(), mengembalikan pointer saat ini.
  4. next(), mengembalikan elemen selanjutnya dan memperbarui pointer
  5. valid(), memvalidasi bahwa ada sebuah element dari pointer saat ini.

Contoh penggunaan interface Iterator :

 <?php  
class Ulang implements Iterator
{
private $var = array();
public function __construct($array)
{
if (is_array($array)) {
$this->var = $array;
}
}
public function rewind()
{
echo "rewinding<br/><br/>";
reset($this->var);
}
public function current()
{
$var = current($this->var);
echo "current: $var<br/><br/>";
return $var;
}
public function key()
{
$var = key($this->var);
echo "key: $var<br/><br/>";
return $var;
}
public function next()
{
$var = next($this->var);
echo "next: $var<br/><br/>";
return $var;
}
public function valid()
{
$key = key($this->var);
$var = ($key !== NULL && $key !== FALSE);
echo "valid: $var<br/><br/>";
return $var;
}
}
$values = array(1,2,3);
$object = new Ulang($values);
foreach ($object as $a => $b) {
print "$a: $b<br/>";
}
?>

Jika program diatas dijalankan akan tampil :

rewinding

valid: 1

current: 1

key: 0

0: 1
next: 2

valid: 1

current: 2

key: 1

1: 2
next: 3

valid: 1

current: 3

key: 2

2: 3
next:

valid:

Referensi :

  • http://php.net/manual/en/language.oop5.iterations.php