2026, 새로운 도약을 시작합니다.

함수밖에서 변수 쓰기? 채택완료

abcd함수를 만들었고요 질문입니다.

function abcd($nick) {

$nick2 = $nick."님";

$kkk = "안녕";

return $nick2;

}

echo abcd("홍길동");

// 결과는  홍길동님 나오겠죠~

근데 위에 사용자정의 함수에 들어있는 $kkk 값을 함수 밖에서 쓸수 없는지 해서요~

배열로 해야할지>

abcd 함수에 nick  값을 넣고 거기에 님을 붙여서 retun 하게 했습니다.

여기서 $kkk 값을 밖에서 또 쓸수 없나요?

질문이 맞는건지, 착각하여 해깔리는건지 멘붕이 와서 갑자기 ㅠ

답변 9개

채택된 답변
+20 포인트

global 는 지금상황에선 추천드리지 않구요

저는 이방식으로 접근하는게 좋을듯합니다

function abcd($nick) {

  $value = array(

    'nick2' => $nick."님",

    'kkk' => "안녕",

  );

  return $value;

}

//출력

$abcd = abcd("홍길동");

echo $abcd['nick2']; // 홍길동님

echo $abcd['kkk']; // 안녕

이런식으로 배열로 담아서 return해주고 받아와서 쓰면될것같네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변감사합니다.~

배열에 넣는 방식이 가장 좋을것 같습니다.~

다른분들도 답변 많은 도움이 되었습니다.~

댓글을 작성하려면 로그인이 필요합니다.

전역변수 여기저기서 끌어오면 나중에 어디서 가져온건지도 모르고 고치기 힘듭니다.

클래스면 클래스이름이 붙어있겠지만 그게아니면 ㅠ

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

원하시는게 포인터같은 변수를 원하시는거라면

Copy


function abcd($nick) {

   $nick2 = $nick."님";

   $kkk = "안녕";

   return $nick2;

}

//이 내용을

//다음과같이 변경해보세요

function abcd($nick, &$kkk='') {

   $nick2 = $nick."님";

   $kkk = "안녕";

   return $nick2;

}

echo $kkk;

// 해보시면 원하시는 내용이 아닐까 싶네요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

댓글을 작성하려면 로그인이 필요합니다.

댓글을 작성하려면 로그인이 필요합니다.

function 안에서 만든 함수를 return을 통해 전송을 하지 않으면 적용이 불가합니다.
위에 말씀하셨듯이 global로 외부의 변수를 호출해서 가져와 적용하는 방식외에는 불가한 부분입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

한 페이지에 있다면 global $변수; 로 땡겨올수 있습니다.

단 지역변수가 먼저 선언되어야 합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다~

댓글을 작성하려면 로그인이 필요합니다.

$kkk는 지역변수입니다. 저 상황에서 지역변수를 전역공간에서 쓰는건 불가능합니다. $kkk를 전역벽수로 넣고 함수내에서 global로 불러오거나, 특정방법으로 전역에서 할당해놓거나 하지 않는 이상 불가능해요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아 네엡

댓글을 작성하려면 로그인이 필요합니다.

근데 위에 사용자정의 함수에 들어있는 $kkk 값을 함수 밖에서 쓸수 없는지 해서요~

==> 반대로 생각하셔야 합니다. 밖에 있는 변수를 함수 안에서 쓴다"라고요.

function abcd( $nick) {

global $kkk;

...

추천하는 방식은 아닙니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

아니면 class를 만드는 방법도 있습니다.
method( class 안에 함수)를 통해서 class 안에 있는 변수 값을 가져오거나 지정합니다.
global 를 통하여 밖에 있는 변수를 함수내로 가져와서 쓰는건는 사용을 했는데요~
반대로 내에서 만들어진 변수를 밖에서 쓰는게 가능했었던가? 이런생각이 갑자기 들어서 ㅋ
그게 class에서 간접적으로 하는 겁니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고