circle-minusIterables

วงศพัทธ์ ประดับศรี 640710851

Iterable คืออะไร

Iterable คือ class หรือ object ที่สามารถทำการวนลูปได้ ซึ่งในภาษา PHP นั้นสามารถใช้กับ foreach() ได้ นั่นหมายความว่า array ทั้งหมด นับว่าเป็น Iterable เพราะสามารถวนลูปได้

ตัวอย่างโค้ดพื้นฐานสั้นๆ สำหรับ Iterable

<?php
function printStudents(iterable $students) {
    foreach ($students as $student) {
        echo "นักเรียน: " . $student . "\n";
    }
}

$students = ["Somchai", "Wanna", "Prayut", "Yingluck"];
printStudents($students);
?>

นักเรียน: Somchai

นักเรียน: Wanna

นักเรียน: Prayut

นักเรียน: Yingluck

อย่างที่บอกว่าถ้า array ทุกตัวนั้นคือ Iterble แสดงว่า เราสามารถใช้ Iterable เป็นพาราเตอร์ได้ในฟังก์ชั่น

หรือ ใช้กับ object ที่ implement Interface จาก Iterator ได้

ตัวอย่างโค้ดเมื่อสร้าง class ที่ imprement จาก Iterator

นักเรียน: Somchai

นักเรียน: Wanna

นักเรียน: Prayut

นักเรียน: Yingluck

โดยมี method ที่สำคัญของ Iterator ดังนี้

1.current() ส่งกลับค่าที่ตัวชี้กำลังชี้ไป

2.key() ส่งกลับคีย์ที่เกี่ยวข้อง

3.next() ย้ายตัวชี้ไปยังองค์ประกอบถัดไปใน list

4.rewind() ย้ายตัวชี้ไปยังองค์ประกอบแรกใน list

5.valid() ถ้าหากว่าไม่มีตัวชี้ จะ return เป็น boolean(จริงกับเท็จ)

เปรียบเทียบกับภาษา Java,C,Python

ตัวอย่างโค้ดภาษา Java

ตัวอย่างโค้ดภาษา C

ตัวอย่างโค้ดภาษา Python

ความแตกต่าง

จริงๆ Java สามารถใช้ for-each หรือ for loop ถ้าเราเลือกที่จะใช้ Interface Interator

จะต้องมี method ของ Interface นั้นด้วย ทำให้ Java นั้นมีความซับซ้อนมากกว่าภาษาอื่น

Presentations

Video

Reference

php: iterables.//2001-2024.//เข้าถึงได้จาก: https://www.php.net/manual/en/language.types.iterable.phparrow-up-right

w3schools.//2001-2024.//PHP iterables.//เข้าถึงได้จาก: https://www.w3schools.com/php/php_iterables.asparrow-up-right

Flatcoding.//2024.//PHP Iterables.//เข้าถึงได้จาก: https://flatcoding.com/tutorials/php-programming/the-essential-guide-for-php-iterable/arrow-up-right

geeksforgeeks.//2020.//Iterable Interface in Java.//เข้าถึงได้จาก: https://www.geeksforgeeks.org/iterable-interface-in-java/arrow-up-right

Ryan Soklaski.//2021.//Iterables.//เข้าถึงได้จาก: https://www.pythonlikeyoumeanit.com/Module2_EssentialsOfPython/Iterables.htmlarrow-up-right

Last updated