PHP - Có thể đi được gì?
Một điều đáng tin là bất kỳ giá trị nào có thể được lặp qua với một vòng lặp foreach[]
.
Loại giả ____2 đã được giới thiệu trong Php 7.1 và nó có thể được sử dụng làm kiểu dữ liệu cho các đối số chức năng và giá trị trả về chức năng.
PHP - Sử dụng Iterables
Từ khóa iterable
có thể được sử dụng làm loại dữ liệu của đối số hàm hoặc là loại trả về của một hàm:
Thí dụ
Sử dụng đối số chức năng có thể lặp lại:
printIterable[$arr];
?>
Hãy tự mình thử »
Thí dụ
Sử dụng đối số chức năng có thể lặp lại:
foreach[$myIterable as $item] {
echo $item;
}
?>
Hãy tự mình thử »
Trả lại một điều đáng tin cậy:
$ myItersable = getIternable []; foreach [$ myIterable as $ item] {& nbsp; echo $ item;}?>
PHP - Tạo vòng lặp
Mảng
Tất cả các mảng là Iterables, vì vậy bất kỳ mảng nào cũng có thể được sử dụng như một đối số của một hàm yêu cầu có thể lặp lại.
Trình lặp
Bất kỳ đối tượng nào thực hiện giao diện Iterator
đều có thể được sử dụng như một đối số của một hàm yêu cầu có thể điều chỉnh được.
- Một iterator chứa một danh sách các mục và cung cấp các phương thức để lặp qua chúng. Nó giữ một con trỏ đến một trong các yếu tố trong danh sách. Mỗi mục trong danh sách nên có một khóa có thể được sử dụng để tìm mục.
- Một trình lặp phải có các phương pháp sau:
current[]
- Trả về phần tử mà con trỏ hiện đang chỉ đến. Nó có thể là bất kỳ loại dữ liệu nàokey[]
Trả về khóa liên kết với phần tử hiện tại trong danh sách. Nó chỉ có thể là một số nguyên, float, boolean hoặc chuỗinext[]
chuyển con trỏ sang phần tử tiếp theo trong danh sách
Thí dụ
Sử dụng đối số chức năng có thể lặp lại:
// array_values[] makes sure that the keys are numbers
$this->items = array_values[$items];
}
Hãy tự mình thử »
return $this->items[$this->pointer];
}
Trả lại một điều đáng tin cậy:
return $this->pointer;
}
$ myItersable = getIternable []; foreach [$ myIterable as $ item] {& nbsp; echo $ item;}?>
$this->pointer++;
}
PHP - Tạo vòng lặp
$this->pointer = 0;
}
Mảng
// count[] indicates how many items are in the list
return $this->pointer < count[$this->items];
}
}
Tất cả các mảng là Iterables, vì vậy bất kỳ mảng nào cũng có thể được sử dụng như một đối số của một hàm yêu cầu có thể lặp lại.
function
printIterable[iterable $myIterable] {
foreach[$myIterable as $item] {
echo $item;
}
}
Trình lặp
$iterator = new MyIterator[["a", "b", "c"]];
printIterable[$iterator];
?>
Hãy tự mình thử »
Giao diện vòng lặp
[Php 5, Php 7, Php 8]
Giới thiệu
Giao diện cho các trình lặp bên ngoài hoặc các đối tượng có thể tự lặp lại trong nội bộ.
Bản tóm tắt giao diện
Xác định trước
PHP đã cung cấp một số trình lặp trong nhiều nhiệm vụ hàng ngày. Xem SPL Iterators cho một danh sách.
Ví dụ
Ví dụ số 1 sử dụng cơ bản
Ví dụ này chứng minh trong đó các phương thức đặt hàng được gọi khi sử dụng foreach với một trình lặp.
foreach[]
0
foreach[]
1
foreach[]
2Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:
string[18] "myIterator::rewind" string[17] "myIterator::valid" string[19] "myIterator::current" string[15] "myIterator::key" int[0] string[12] "firstelement" string[16] "myIterator::next" string[17] "myIterator::valid" string[19] "myIterator::current" string[15] "myIterator::key" int[1] string[13] "secondelement" string[16] "myIterator::next" string[17] "myIterator::valid" string[19] "myIterator::current" string[15] "myIterator::key" int[2] string[11] "lastelement" string[16] "myIterator::next" string[17] "myIterator::valid"
Mục lục
- Iterator :: hiện tại - trả về phần tử hiện tại
- Iterator :: phím - Trả lại khóa của phần tử hiện tại
- Iterator :: Tiếp theo - Chuyển tiếp đến phần tử tiếp theo
- Iterator :: tua lại - tua lại trình lặp lại phần tử đầu tiên
- Iterator :: hợp lệ - kiểm tra xem vị trí hiện tại có hợp lệ không
Robert_e_lee tại Dell Dot Com ¶ ¶
12 năm trước
foreach[]
3
foreach[]
4
foreach[]
5
foreach[]
6
foreach[]
7
foreach[]
8Rocketinabog tại Techno-Monks Dot Net ¶
13 năm trước
foreach[]
9
iterable
0
iterable
1fetidfrog tại gmail dot com ¶ ¶
10 năm trước
iterable
2
iterable
3
iterable
4
iterable
5Mike Dot Thornton tại Firstroi Dot Com ¶ ¶
13 năm trước
iterable
6
iterable
7
iterable
8
iterable
9
iterable
0
iterable
5Geoffrey Sneddon ¶ ¶
13 năm trước
iterable
2
iterable
3
iterable
4
iterable
5Ẩn danh ¶ ¶
6 năm trước
iterable
6
iterable
7
iterable
8
iterable
9
Iterator
0
iterable
5Gilles a ¶ ¶
8 năm trước
Iterator
2
geompse tại gmail dot com ¶ ¶
11 năm trước
Iterator
3
Iterator
4
iterable
5Anthony Sterling ¶ ¶
13 năm trước
Iterator
6
Iterator
7
Iterator
8
Iterator
9Ẩn danh ¶ ¶
6 năm trước
current[]
0
current[]
1
current[]
2
iterable
5Gilles a ¶ ¶
8 năm trước
current[]
4
current[]
5
current[]
6
current[]
7
iterable
5
geompse tại gmail dot com ¶ ¶
11 năm trước
current[]
9
key[]
0
key[]
1
key[]
2
key[]
3
key[]
4
key[]
5
key[]
6
key[]
7
iterable
5Anthony Sterling ¶ ¶
8 năm trước
key[]
9
geompse tại gmail dot com ¶ ¶
11 năm trước
next[]
0
Anthony Sterling ¶ ¶
11 năm trước
next[]
1
next[]
2
next[]
3Anthony Sterling ¶ ¶
11 năm trước
next[]
4
next[]
5
next[]
6
next[]
7
next[]
8
next[]
9Anthony Sterling ¶ ¶
Invisiblesmiley ¶
2 tháng trước đây
Jeroen tại asystance dot nl ¶ ¶
2 năm trước
rewind[]
1
rewind[]
2
rewind[]
3
iterable
0
rewind[]
5