PHP 7.4로 마이그레이션 할 때 reset()
, current()
또는 end()
ArrayObject와 같은 일부 배열 함수의 다른 동작을 처리해야합니다 . 다음 예제는 다른 출력을 생성합니다.
<?php
$array = new \ArrayObject(["a", "b"]);
$item = end($array);
var_dump($item);
$array = ["a", "b"];
$item = end($array);
var_dump($item);
함께 PHP 7.4 출력이다 :
bool(false)
string(1) "b"
7.4 이전의 PHP 버전에서 출력은 다음과 같습니다.
string(1) "b"
string(1) "b"
A end($array->getArrayCopy())
는 통지를 생성하지만 변수와 함께 사용하면 해결 방법이 될 수 있습니다.
행동의 모방 할 수있는 방법이 있나요 end()
로 ArrayObject
또는 ArrayIterator
? ArrayObject는 매우 클 수 있으며 끝까지 반복하는 것이 최선의 해결책이 아닐 수 있습니다.
$item = $array[count($array)-1];
. 그것이 가장 효율적인 솔루션인지 확실하지 않습니다.