Tranquillo
Grafiker™️ Developer✓ Development Yetkilisi·
- Üyelik Tarihi
- 4 Ocak 2023
- Konular
- 53
- Mesajlar
- 132
- MFC Puanı
- 1,620
PHP - Yinelenebilir nedir?
Yinelenebilir, bir döngü ile döngülenebilen herhangi bir değerdir foreach().Sözde iterabletür PHP 7.1 'de tanıtıldı ve işlev argümanları ve işlev dönüş değerleri için bir veri türü olarak kullanılabilir.
PHP - Yinelenebilirleri Kullanma
Anahtar iterable sözcük, bir işlev bağımsız değişkeninin veri türü olarak veya bir işlevin dönüş türü olarak kullanılabilir:Örnek: Yinelenebilir bir işlev argümanı kullanın:
PHP:
<?php
function printIterable(iterable $myIterable) {
foreach($myIterable as $item) {
echo $item;
}
}
$arr = ["a", "b", "c"];
printIterable($arr);
?>
Örnek: Yinelenebilir bir dönüş yapın:
PHP:
<?php
function getIterable():iterable {
return ["a", "b", "c"];
}
$myIterable = getIterable();
foreach($myIterable as $item) {
echo $item;
}
?>
PHP - Yinelenebilirler Oluşturma
Diziler: Tüm diziler yinelenebilirdir, bu nedenle herhangi bir dizi yinelenebilir gerektiren bir işlevin argümanı olarak kullanılabilir.Yineleyiciler: Arabirimi uygulayan herhangi bir nesne, Iterator yinelenebilir bir işlev gerektiren bir işlevin argümanı olarak kullanılabilir. Bir yineleyici, bir öğe listesi içerir ve bunlar arasında dolaşmak için yöntemler sağlar. Listedeki öğelerden birine bir işaretçi tutar. Listedeki her öğe, öğeyi bulmak için kullanılabilecek bir anahtara sahip olmalıdır.
Bir yineleyici şu yöntemlere sahip olmalıdır:
- current() İşaretçinin şu anda işaret ettiği öğeyi döndürür. Herhangi bir veri türü olabilir
- key() Listedeki geçerli öğeyle ilişkili anahtarı döndürür. Yalnızca bir tamsayı, kayan nokta, boole veya dize olabilir
- next() İşaretçiyi listedeki bir sonraki öğeye taşır
- rewind() İşaretçiyi listedeki ilk öğeye taşır
- valid() Dahili işaretçi herhangi bir öğeye işaret etmiyorsa (örneğin, listenin sonunda next() çağrıldıysa), bu false döndürmelidir. Başka bir durumda true döndürür
Örnek: Yineleyici arabirimini uygulayın ve yinelenebilir olarak kullanın:
PHP:
<?php
class Turkmmo implements Iterator {
private $items = [];
private $pointer = 0;
public function __construct($items) {
$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() {
return $this->pointer < count($this->items);
}
}
function printIterable(iterable $myIterable) {
foreach($myIterable as $item) {
echo $item;
}
}
$iterator = new MyIterator(["a", "b", "c"]);
printIterable($iterator);
?>
Son düzenleme: