บทช่วยสอนPHP

PHP HOME แนะนำ PHP การติดตั้ง PHP PHP ไวยากรณ์ ความคิดเห็น PHP ตัวแปร PHP PHP Echo / พิมพ์ ประเภทข้อมูล PHP PHP Strings หมายเลข PHP PHP คณิตศาสตร์ ค่าคงที่ PHP ตัวดำเนินการ PHP PHP If...Else...Elseif PHP Switch PHP Loops ฟังก์ชัน PHP PHP Arrays PHP Superglobals PHP RegEx

แบบฟอร์มPHP

การจัดการแบบฟอร์ม PHP การตรวจสอบแบบฟอร์ม PHP ต้องใช้แบบฟอร์ม PHP URL แบบฟอร์ม PHP/อีเมล แบบฟอร์ม PHP เสร็จสมบูรณ์

PHPขั้นสูง

วันที่และเวลา PHP รวม PHP การจัดการไฟล์ PHP ไฟล์ PHP เปิด/อ่าน สร้าง/เขียนไฟล์ PHP อัพโหลดไฟล์ PHP คุกกี้ PHP PHP Sessions ตัวกรอง PHP ตัวกรอง PHP ขั้นสูง ฟังก์ชันเรียกกลับของ PHP PHP JSON ข้อยกเว้น PHP

PHP OOP

PHP OOP คืออะไร คลาส PHP/วัตถุ ตัวสร้าง PHP PHP Destructor PHP Access Modifiers PHP Inheritance ค่าคงที่ PHP PHP Abstract Classes อินเทอร์เฟซ PHP PHP ลักษณะ PHP Static Methods PHP คุณสมบัติคงที่ PHP เนมสเปซ PHP Iterables

ฐานข้อมูลMySQL

ฐานข้อมูล MySQL MySQL Connect MySQL สร้าง DB MySQL สร้างตาราง MySQL แทรกข้อมูล MySQL รับ ID ล่าสุด MySQL แทรกหลายรายการ MySQL ที่เตรียมไว้ MySQL Select Data MySQL Where MySQL สั่งซื้อโดย MySQL ลบข้อมูล ข้อมูลอัพเดต MySQL MySQL Limit Data

PHP XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - รับ PHP XML Expat PHP XML DOM

PHP - AJAX

บทนำ AJAX AJAX PHP ฐานข้อมูล AJAX AJAX XML AJAX ค้นหาสด AJAX โพล

ตัวอย่างPHP

ตัวอย่าง PHP PHP คอมไพเลอร์ แบบทดสอบ PHP แบบฝึกหัด PHP ใบรับรอง PHP

ข้อมูลอ้างอิงPHP

ภาพรวม PHP PHP Array ปฏิทิน PHP PHP วันที่ ไดเรกทอรี PHP ข้อผิดพลาด PHP ข้อยกเว้น PHP ระบบไฟล์ PHP ตัวกรอง PHP PHP FTP PHP JSON คีย์เวิร์ด PHP PHP Libxml PHP Mail PHP คณิตศาสตร์ PHP เบ็ดเตล็ด PHP MySQLi เครือข่าย PHP การควบคุมเอาต์พุต PHP PHP RegEx PHP SimpleXML PHP Stream PHP String การจัดการตัวแปร PHP PHP XML Parser PHP Zip เขตเวลา PHP

PHP Iterables


PHP - Iterable คืออะไร?

iterable คือค่าใด ๆ ที่สามารถวนซ้ำได้ด้วยการforeach()วนซ้ำ

pseudo-type ถูกนำมา ใช้iterableใน PHP 7.1 และสามารถใช้เป็นชนิดข้อมูลสำหรับอาร์กิวเมนต์ของฟังก์ชันและค่าส่งคืนของฟังก์ชัน


PHP - การใช้ Iterables

iterableคีย์เวิร์ดสามารถใช้เป็นชนิดข้อมูลของอาร์กิวเมนต์ของฟังก์ชันหรือเป็นชนิดส่งคืนของฟังก์ชันได้:

ตัวอย่าง

ใช้อาร์กิวเมนต์ของฟังก์ชัน iterable:

<?php
function printIterable(iterable $myIterable) {
  foreach($myIterable as $item) {
    echo $item;
  }
}

$arr = ["a", "b", "c"];
printIterable($arr);
?>

ตัวอย่าง

ส่งคืน iterable:

<?php
function getIterable():iterable {
  return ["a", "b", "c"];
}

$myIterable = getIterable();
foreach($myIterable as $item) {
  echo $item;
}
?>


PHP - การสร้าง Iterables

อาร์เรย์

อาร์เรย์ทั้งหมดเป็นแบบ iterables ดังนั้นอาร์เรย์ใดๆ สามารถใช้เป็นอาร์กิวเมนต์ของฟังก์ชันที่ต้องการ iterable ได้

ตัววนซ้ำ

วัตถุใดๆ ที่ใช้Iteratorอินเทอร์เฟซสามารถใช้เป็นอาร์กิวเมนต์ของฟังก์ชันที่ต้องการ iterable

ตัววนซ้ำประกอบด้วยรายการและจัดเตรียมวิธีการวนซ้ำ มันเก็บตัวชี้ไปยังองค์ประกอบใดองค์ประกอบหนึ่งในรายการ แต่ละรายการในรายการควรมีคีย์ที่สามารถใช้ค้นหารายการได้

ตัววนซ้ำต้องมีวิธีการเหล่านี้:

  • current()- ส่งกลับองค์ประกอบที่ตัวชี้กำลังชี้ไป เป็นข้อมูลประเภทใดก็ได้
  • key()ส่งกลับคีย์ที่เกี่ยวข้องกับองค์ประกอบปัจจุบันในรายการ ต้องเป็นจำนวนเต็ม ทุ่น บูลีน หรือสตริงเท่านั้น
  • next() ย้ายตัวชี้ไปยังองค์ประกอบถัดไปในรายการ
  • rewind() ย้ายตัวชี้ไปยังองค์ประกอบแรกในรายการ
  • valid()หากตัวชี้ภายในไม่ได้ชี้ไปที่องค์ประกอบใด ๆ (เช่น หากมีการเรียก next() ที่ส่วนท้ายของรายการ) สิ่งนี้ควรคืนค่าเป็นเท็จ คืนค่าเป็นจริงในกรณีอื่น ๆ

ตัวอย่าง

ใช้อินเทอร์เฟซ Iterator และใช้เป็น iterable:

<?php
// Create an Iterator
class MyIterator implements Iterator {
  private $items = [];
  private $pointer = 0;

  public function __construct($items) {
    // array_values() makes sure that the keys are numbers
    $this->items = array_values($items);
  }

  public function current() {
    return $this->items[$this->pointer];
  }

  public function key() {
    return $this->pointer;
  }

  public function next() {
    $this->pointer++;
  }

  public function rewind() {
    $this->pointer = 0;
  }

  public function valid() {
    // count() indicates how many items are in the list
    return $this->pointer < count($this->items);
  }
}

// A function that uses iterables
function printIterable(iterable $myIterable) {
  foreach($myIterable as $item) {
    echo $item;
  }
}

// Use the iterator as an iterable
$iterator = new MyIterator(["a", "b", "c"]);
printIterable($iterator);
?>