ch08 / exam08-11.php

값에 의한 호출 (Call by Value) swap() 시각화

인수의 복사본이 매개변수에 전달되므로, 함수 내부의 교환이 외부 변수($num1, $num2)에 영향 없음

PHP Source (ch08/exam08-11.php)
단계: 0 / 0
1-7<!DOCTYPE html> <html> ... <body>
8<?php
9function swap($a, $b) { // 값에 의한 전달 (복사본 수신)
10$tmp = $a;
11$a = $b;
12$b = $tmp;
13}
15$num1 = 10;
16$num2 = 20;
17echo "swap($a, $b) 실행 전 : $num1 = $num1, $num2 = $num2<br>";
19swap($num1, $num2);
20echo "swap($a, $b) 실행 후 : $num1 = $num1, $num2 = $num2<br>";
21?>
22-23</body> </html>
준비 완료 실행 버튼 또는 다음 단계를 눌러주세요.
값 복사 메모리 모델 (Call by Value)
호출자 메모리 (Caller Scope)
$num1: 10
$num2: 20
swap() 로컬 복사본 (Callee Scope)
$a: -
$b: -
$tmp: -
http://localhost/ch08/exam08-11.php

값에 의한 호출 (Call by Value)의 한계