반응형
PHP - 각 루프에 대한 변수 앞의 앰퍼샌드
중복 가능성:
참조 - PHP에서 이 기호는 무엇을 의미합니까?
각 루프에 대한 변수 앞에 앰퍼샌드를 사용하는 이유를 알아야 합니다.
foreach ($wishdets as $wishes => &$wishesarray) {
foreach ($wishesarray as $categories => &$categoriesarray) {
}
}
이 예는 차이를 보여줍니다.
$array = array(1, 2);
foreach ($array as $value) {
$value++;
}
print_r($array); // 1, 2 because we iterated over copy of value
foreach ($array as &$value) {
$value++;
}
print_r($array); // 2, 3 because we iterated over references to actual values of array
여기에서 PHP 문서를 확인하십시오. http://pl.php.net/manual/en/control-structures.foreach.php
즉, 값 대신 참조를 통해 전달됩니다.IE 변수를 조작하면 원본에 영향을 미칩니다.이 값은 수정사항이 원래 개체에 영향을 미치지 않는 값에 따라 다릅니다.
이것은 스택 오버플로 시 여러 번 요청됩니다.
단일 어레이 인스턴스의 변경 사항을 메인 어레이에 적용하는 데 사용됩니다.
다음과 같이:
//이제 변경 사항이 어레이 $wisharray에 영향을 미치지 않습니다.
foreach ($wishesarray as $id => $categoriy) {
$categoriy++;
}
print_r($wishesarray); //It'll same as before..
하지만 이제 변경 사항은 어레이 $wisharray에도 반영됩니다.
foreach ($wishesarray as $id => &$categoriy) {
$categoriy++;
}
print_r($wishesarray); //It'll have values all increased by one..
질문에 있는 코드의 경우 각 루프의 내부가 비어 있기 때문에 구체적인 답변이 주어지지 않습니다.
내가 당신의 코드로 본 것은, 내면이foreach
공통 방식 대신 참조를 통해 반복합니다.
PHP 설명서 페이지를 읽어보시기를 권합니다. 이 페이지는 네 가지 경우를 모두 다룹니다.
foreach($standard as $each);
foreach($standard as &$each); # this is used in your question
$reference = &$standard;
foreach($reference as $each);
$reference = &$standard;
foreach($reference as &$each); # this is used in your question
언급URL : https://stackoverflow.com/questions/8769288/php-ampersand-before-the-variable-in-foreach-loop
반응형
'programing' 카테고리의 다른 글
파일로 리디렉션될 때 stdout에 명시적 플러시가 필요한 이유는 무엇입니까? (0) | 2023.07.30 |
---|---|
Oracle에 C#을 연결하는 중 (0) | 2023.07.30 |
외부 키 추가 오류: ORA-02298: 유효성을 검사할 수 없음 - 상위 키를 찾을 수 없음 (0) | 2023.07.25 |
try-except 블록과 함께 python "with" 문 사용 (0) | 2023.07.25 |
ANSI/VT100 코드를 사용한 PowerShell 콘솔의 컬러 텍스트 출력 (0) | 2023.07.25 |