본문 바로가기
개발공부/PHP

PHP call by reference

by bzerome240 2024. 3. 2.

함수 호출 시 매개변수를 참조(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

댓글