PHP 7.4'e geçiş yaparken reset()
, ArrayObject gibi current()
ya da end()
ArrayObject ile ilgili bazı dizi işlevlerinin farklı bir davranışıyla uğraşmak zorundayım . Aşağıdaki örnek farklı çıktılar üretir:
<?php
$array = new \ArrayObject(["a", "b"]);
$item = end($array);
var_dump($item);
$array = ["a", "b"];
$item = end($array);
var_dump($item);
İle php 7.4 çıktısı:
bool(false)
string(1) "b"
7.4'ten önceki PHP sürümlerinde çıktı aşağıdaki gibidir:
string(1) "b"
string(1) "b"
A end($array->getArrayCopy())
bir uyarı oluşturur, ancak bir değişkenle kullanılırsa geçici bir çözüm olabilir.
end()
Bir ArrayObject
veya ile davranışını taklit etmenin bir yolu var mı ArrayIterator
? ArrayObject çok büyük olabilir, sonuna kadar bir yineleme en iyi çözüm olmayabilir.
$item = $array[count($array)-1];
. Bunun en verimli çözüm olup olmadığından emin değilim.