PHP 참조 전달 문제에 대하여
大家讲道理
大家讲道理 2017-05-18 10:45:59
0
3
495

배열 a 자체가 다른 배열에 의해 참조됩니다. 이제 if 판단에서 배열 a를 배열 b에 할당하고 싶습니다. 하지만 단순히 값을 전달하고 싶습니다. 이를 수행하는 방법은 무엇입니까? if에서 b의 값만 변경하고 싶기 때문에 a의 값은 변경할 수 없다고 판단합니다

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(3)
为情所困

예시를 작성해 보세요, 텍스트 설명이 좀 복잡한 것 같습니다

曾经蜡笔没有小新

"if 판단에서 배열 a를 배열 b에 할당", 배열 a를 배열 b에 할당합니까, 아니면 배열 b를 배열 a에 할당합니까?

으아악

배열 a를 배열 b에 할당

으아악

배열 b를 배열 a에 할당

으아악
过去多啦不再A梦

b=a를 직접 할당하면 됩니다. php에서는 앰퍼샌드가 없는 배열이 값으로 전달되므로 if에 b가 포함되어 있어도 마찬가지입니다. 가 변경되더라도 ab=a就好了,在php中数组不加&符号都是值传递,所以if里面就算b变化了,也不会影响a的值

不会跟着变,因为a是被引用赋值,这没问题,但是只要a对b是值传递,他们就不会存在引用关系,你没上代码,我根据你的需求试着模拟了一个比较简单的场景,你可以自己试着运行下:

<?php                                                                                                                                                                       
define('CLI_SCRIPT', true);                                                                                                                                                 
                                                                                                                                                                            
$data = array(1, 2, 3, 4);                                                                                                                                                  
foreach ($data as &$tmp) {                                                                                                                                                  
    $a = $tmp;                                                                                                                                                              
    if (in_array($a, [1, 2])) {                                                                                                                                             
        $b = $a;                                                                                                                                                            
        $b = $b - 1;                                                                                                                                                        
        var_dump($a);                                                                                                                                                       
        var_dump($b);                                                                                                                                                       
    }                                                                                                                                                                       
} 

你在$b=$a之前加一句unset($val) 값에는 영향을 미치지 않습니다.

a는 참조로 할당되므로 문제가 되지 않지만 a와 b가 값으로 전달되는 한 참조 관계가 없습니다. 코드를 읽지 않았습니다. 필요에 따라 비교를 시뮬레이션합니다. 간단한 시나리오로 직접 실행해 볼 수 있습니다. 🎜 으아아아 🎜$b=$a 앞에 unset($val)을 추가하세요.🎜
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿