In PHP, an iterable is a data type that can be iterated over using a foreach loop. It includes arrays and objects that implement the `Traversable` interface. The iterable keyword is a type declaration introduced in PHP 7.1 to indicate that a parameter or return type must be an array or an object that implements `Traversable`.
The iterable type declaration can be used in function/method signatures to specify that a parameter must be an array or an object implementing Traversable. It can also be used as a return type.
Example:
function process(iterable $items) {
foreach ($items as $item) {
echo $item . "<br>";
}
}
// Using the function with an array
$array = [1, 2, 3];
process($array);
// Using the function with an object implementing Traversable
class MyCollection implements IteratorAggregate {
private $items = [];
public function __construct(array $items) {
$this->items = $items;
}
public function getIterator() {
return new ArrayIterator($this->items);
}
}
$collection = new MyCollection([4, 5, 6]);
process($collection);
You can use the foreach loop to iterate over iterable types, such as arrays and objects implementing Traversable.
Example:
// Iterating over an array
$array = ['apple', 'banana', 'cherry'];
foreach ($array as $item) {
echo $item . "<br>";
}
// Iterating over an object implementing Traversable
$collection = new MyCollection(['dog', 'cat', 'rabbit']);
foreach ($collection as $item) {
echo $item . "<br>";
}
You can specify iterable as a return type for a function or method that returns an array or an object implementing Traversable.
Example:
function generateItems(): iterable {
yield 'one';
yield 'two';
yield 'three';
}
$items = generateItems();
foreach ($items as $item) {
echo $item . "<br>";
}
You can use the is_iterable() function introduced in PHP 7.1 to check if a variable is an iterable type.
Example:
$var1 = [1, 2, 3];
$var2 = new MyCollection(['a', 'b', 'c']);
var_dump(is_iterable($var1)); // Output: bool(true)
var_dump(is_iterable($var2)); // Output: bool(true)
In PHP, iterable is a type declaration that specifies that a parameter or return type must be an array or an object implementing Traversable. It is useful when writing functions or methods that can accept various types of iterable data structures, such as arrays and objects. iterable allows for flexible and reusable code that can work with different data sources. It's important to understand when and how to use iterable to create more versatile and maintainable PHP applications.