Community

커뮤니티

홈 > 회원포럼 > 커뮤니티
커뮤니티

포폴 개발하면서 배열에 관해 알게된 것.

7 comcool 3 242

포폴을 아직도 개발하고 있습니다.

잘 하고있다가 MVC 패턴에 안맞아 지우고.

다시 만들다가 기존의 view.php?login 이런 부분을 /login 으로 라우팅 기능을 만들고싶어 다시 지우고..


이러다가 죽도 밥도 안되겠다 싶어 어제부터 새로 만들기 시작했는데


오늘 배열에 관해 알게된 점이 한가지 있네요.


만약 $view라는 변수가 있습니다.

이 변수는 $view = '1'; 로 선언 및 초기화가 되어 있는데


$view = array(

    'a' => '1'

);


로 한다면 당연히 $view가 array로 초기화될 줄 알았습니다. print_r($view); 로 확인해도 Array ( ... )로 출력이 되구요. 근데 이런 식으로 하나하나하게 되면 변수가 더 생성되어야 하기때문에 리소스 문제도 있고 해서 한번 테스트를 해봤습니다.


$view = array(

    'a' => $view

);


로 해봤습니다.

결과는 $view['a'] = 1; 로 나왔습니다.

물론 다른 곳에서 $view 로 한다면 Array to string.. 에러가 출력됩니다. 배열안에서만 사용가능한거 같더라구요.


쉽게 요약하자면

1. 변수를 선언, 어떤 값을 줘서 초기화하고 배열로 만든다해도

2. 그 배열안에서는 기존 변수의 값을 가지고 있다는 것입니다.



PHP 7.1.7 에서 테스트했습니다. 환경에 따라 다르겠네요.

  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오스토리로 보내기
  • 네이버밴드로 보내기
  • 네이버로 보내기
  • 텀블러로 보내기
  • 핀터레스트로 보내기

Author

Lv.7 7 comcool  회원
12,590 (74.6%)

Unsteady

7 comcool 17-10-09 22:09 0   0
다시 읽어보니 굉장히 글을 못 썼네요. 문과가 아니라 죄송합니다.
15 신비 17-10-10 11:06 1   0
■ 질문1
만약 $view라는 변수가 있습니다.
이 변수는 $view = '1'; 로 선언 및 초기화가 되어 있는데

$view = array(
    'a' => '1'
);

로 한다면 당연히 $view가 array로 초기화될 줄 알았습니다. print_r($view); 로 확인해도 Array ( ... )로 출력이 되구요.

■ 질문1 - 답변

<?php
$view = '5';
$view = array(
    'a' => '1'
);
var_dump($view);

결과값: array(1) { ["a"]=> string(1) "1" }

위 예제에서 보듯이, 새로 재정의되는 것이 맞습니다.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

■ 질문2
근데 이런 식으로 하나하나하게 되면 변수가 더 생성되어야 하기때문에 리소스 문제도 있고 해서 한번 테스트를 해봤습니다.

$view = array(
    'a' => $view
);

로 해봤습니다.
결과는 $view['a'] = 1; 로 나왔습니다.
물론 다른 곳에서 $view 로 한다면 Array to string.. 에러가 출력됩니다. 배열안에서만 사용가능한거 같더라구요.


■ 질문2 - 답변

<?php
$view = '5';
$view = array(
    'a' => $view
);
var_dump($view);

결과값: array(1) { ["a"]=> string(1) "5" }

위 예제 경우엔, a에 앞서 선언한 $view 변수를 다시 넣어주니까, 최초 선언한 5가 들어가는 게 맞습니다.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

정리하자면,
「변수의 성질인 나중에 정의한 값이 새로 들어간다..........배열이라고 해서 달라질 게 없다. 」입니다. 
제목
최근 글
최근 댓글
Facebook Twitter GooglePlus KakaoStory NaverBand