함수 호출 시 매개변수를 참조(reference)로 전달하는 것
해당 매개변수의 원래 값이 아니라 해당 값이 저장된 메모리 주소를 함수로 전달하는 것을 의미합니다.
개발을 하다가 문득 궁금하여 챗지피티 형님에게 물어봐습니다.
ChatGPT - php에서 call by reference 가 메모리에 도움이될까?
특정 상황에서 메모리와 성능 측면에서 이점을 제공할 수 있으나, 코드 가독성과 유지보수의 어려움, 예측 불가능한 부작용 등을 고려해야 합니다.
함수 호출 방식은 사용하는 코드의 목적과 구조에 따라 선택되어야 하며, 모든 상황에서 적합한 것은 아닐 수 있습니다.
Parameters | Call by value | Call by reference |
Definition | 변수를 복사하여 값을 전달하는 것 | 변수의 주소를 전달하는 것 |
Arguments | 변수 복사본이 전달된다. | 변수 자체가 전달된다. |
Effect | 함수 외부의 변수값 수정이 불가하다. | 함수 외부의 변수값 수정이 가능하다. |
Memory Location | 다른 메모리 위치에 생성된다 | 동일한 메모리 위치에 생성된다 |
Safety | 안전하다. | 안전하지 못하다. |
Defulat | C++.PHP. Visual Basic NET, C#. | JAVA (기본값은 아니다) |
function increment($num) {
$num = $num + 1;
echo $num."\\n";
}
call by reference 는 & 를 붙인다.
function increment(&$num) {
$num = $num + 1;
echo $num."\\n";
}
728x90
반응형
'개발공부 > PHP' 카테고리의 다른 글
PHP 단점 - connection pool (0) | 2023.06.07 |
---|---|
[공유] Clean Code PHP 한글판 (0) | 2023.05.16 |
PHP 싱글톤 패턴 (0) | 2023.03.19 |
[PHP] redis 라이브러리 - Predis 알아보기 (0) | 2022.12.30 |
[PHP] mysql_num_rows VS mysql_affected_rows (0) | 2020.04.27 |
댓글