Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

Iterables ใน PHP

นิยามและการใช้งาน

ตั้งแต่รุ่น 7.1 ขึ้นไป PHP มี pseudo-type ใหม่ชื่อ iterable อ็อบเจ็กต์ใดๆ (เช่น อาร์เรย์) ที่ใช้งานอินเตอร์เฟซ Traversable จะถูกยอมรับ โดยชนิดนี้ใช้คอนสตรัคต์ foreach หรือฟังก์ชันเจเนอเรเตอร์ (generator function) ที่ผลลัพธ์ค่า (yield) ทีละค่า

รูปแบบไวยากรณ์

ฟังก์ชันสามารถมี iterable เป็นชนิดของพารามิเตอร์ เพื่อให้ฟังก์ชันยอมรับชุดค่าที่ใช้ในคำสั่ง foreach หากพารามิเตอร์ไม่รองรับลูป foreach PHP parser จะโยน TypeError

ตัวอย่าง

<?php $arr1=array("PHP","Java","Python"); function myfunc (iterable $arr1){     foreach ($arr1 as $lang){         echo $lang . "\n";     } } myfunc($arr1); ?>

ผลลัพธ์

PHP Java Python

ฟังก์ชัน PHP ยังสามารถคืนค่าชนิดข้อมูล iterable เช่น อาร์เรย์ได้ ใช้ฟังก์ชัน is_iterable() เพื่อตรวจสอบชนิดของค่าที่คืนกลับ

ตัวอย่าง

<?php function newfunc ():iterable{     $arr2=[];     for ($i=1;$i<4;$i++){         $arr2[$i]=$i*2;     }     return $arr2; } $ret=newfunc(); var_dump (is_iterable($ret)); ?>

ผลลัพธ์

bool(true)

ตัวอย่างต่อไปนี้เป็นตัวอย่างของเจเนอเรเตอร์ที่มีชนิดการคืนค่าเป็น iterable:

ตัวอย่าง

<?php function gen(): iterable {     yield 1;     yield 2;     yield 3; } gen(); ?>

รุ่น PHP

Pseudo-type Iterable ถูกนำเข้ามาใน PHP 7.1