PHP 7 새로운 기능 foreach 수정 예시 소개
$array = [0, 1, 2];
foreach ($array as &$val)
{
var_dump(current($array));
}
PHP 5 가 실 행 된 결 과 는 int(1)int(2)bool(false)로 인쇄 됩 니 다.PHP 7 이 실 행 된 결 과 는 int(0)를 세 번 인쇄 합 니 다.즉,배열 의 내부 지침 은 변 하지 않 았 습 니 다.
이전에 실 행 된 결 과 는 int(1),int(2),bool(false)을 인쇄 합 니 다.
2.값 에 따라 순환 할 때 foreach 는 이 배열 의 복사 작업 입 니 다.
foreach 가 값 에 따라 순환 할 때(by-value)foreach 는 이 배열 의 복사 본 을 조작 합 니 다.이렇게 순환 과정 에서 배열 에 대한 수정 은 순환 행위 에 영향 을 주지 않 을 것 이다.
$array = [0, 1, 2];
$ref =& $array; // Necessary to trigger the old behavior
foreach ($array as $val) {
var_dump($val);
unset($array[1]);
}
위의 코드 는 순환 중 에 배열 의 두 번 째 요소 인 unset 를 제거 하지만 PHP 7 은 세 가지 요 소 를 출력 합 니 다.(0,12)이전 버 전의 PHP 는 1 을 건 너 뛰 고 인쇄 만 합 니 다(02).
3.인용 에 따라 순환 할 때 배열 의 수정 은 순환 에 영향 을 줄 수 있 습 니 다.
순환 할 때 인용 하 는 방식 이 라면 배열 의 수정 은 순환 행위 에 영향 을 줄 수 있다.하지만 PHP 7 버 전 은 많은 장면 아래 위치 유 지 를 최적화 시 켰 습 니 다.예 를 들 어 순환 할 때 배열 에 요 소 를 추가 합 니 다.
$array = [0];
foreach ($array as &$val) {
var_dump($val);
$array[1] = 1;
}
위의 코드 에 추 가 된 요소 도 순환 에 참여 합 니 다.그러면 PHP 7 은'int(0)int(1)'를 인쇄 하고,이전 버 전 은'int(0)'만 인쇄 합 니 다.4.간단 한 대상 plain(non-Traversable)의 순환.
간단 한 대상 의 순환 은 값 에 따라 순환 하 든 인용 에 따라 순환 하 든 인용 에 따라 배열 을 순환 하 는 행위 와 같다.하지만 위치 관 리 는 더 정확 할 것 이다.
5.교체 대상(Traversable objects)대상 에 대한 행 위 는 이전 과 일치 합 니 다.
컴 파 일 러:stackoverflow 위의 설명:Traversable object is one that implements Iterator or Iterator Aggregate interface.한 대상 이 iterator 나 Iterator Aggregate 인 터 페 이 스 를 실현 하면 교체 대상 이 라 고 할 수 있다.
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 PHP 7 의 새로운 특성 인 foreach 수정 입 니 다.여러분 께 도움 이 되 셨 으 면 합 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Codeigniter 4 Post 요청안녕하십니까, 안녕하십니까?,당신들에게 이것은 당신들이 코드igniter4의 작업 원리에 대해 기본적인 이해를 얻었거나 단지 시험해 보고 싶다는 것을 의미합니다. 따라서 이 예에서 POST 요청을 뷰에서 컨트롤러로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.