programing

PHP - 각 루프에 대한 변수 앞의 앰퍼샌드

batch 2023. 7. 25. 20:47
반응형

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

반응형