묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
&getModel() getModel() 차이점이..?
2014.05.19 23:00
코드를 보니까 어떤 건
&getModel()
어떤 건
getModel()
근데 막상 서로 바꿔서 사용해도 문제는 없는 것 같은데
정확한 차이점이 뭔가요?
댓글 11
-
LI-NA
2014.05.19 23:43
-
애니즌
2014.05.19 23:45
아 앞에 &를 쓰면 오류가 났을 시 에러를 뿜는게 아니라 아예 무시된다는 건가요?!
-
LI-NA
2014.05.19 23:54
참고: http://www.php.net/manual/en/language.references.return.php
-
애니즌
2014.05.20 00:01
오 새로운 사실을 알고 갑니다!! 감사합니다!!
-
LI-NA
2014.05.20 00:17
으아... 좀 헛갈렸네여... @이거랑 &이거랑... +ㅁ+
-
sejin7940
2014.05.19 23:56
-
애니즌
2014.05.20 00:05
오 감사합니다 :) 한글이군요 ㅎ
-
이즈야
2014.05.20 16:34
혹시나 잘못 알아들으셨을까봐 재답변.
질문하신 내용은 참조 연산자입니다. 포인터라고도 합니다.
값을 '대입'하는 것은 메모리에 새로운 데이터를 올리는 과정이고, '참조'하는 것은 값이 있는 위치'만' 가리키게 됩니다. 즉 새로운 데이터를 올리는 과정이 없지요.
이게 필요한 경우는 인스턴스 공유 등이 있습니다. 여러 모듈이나 애드온에서 인스턴스를 중구난방 생성해버리면 안 되겠지요? 인스턴스를 하나만 만들고 그것을 다시 호출했을 때 참조만 하게 만들어져 있습니다.
최근 1.7.4 코어에서는 getModel 같은 함수 자체에 참조 연산자가 붙어 있어서 굳이 &를 붙일 필요는 없습니다. -
애니즌
2014.05.20 18:25
쉽게 말하면 이미 호출되어 있는 것을 호출하는 거라는 말씀인가요? 생성은 하지 않고..
말씀하신대로 중구난방으로 여러번 호출하면 불필요하니까... 맞나요?
이해력이 부족하군요 ㅠㅠ
-
이즈야
2014.05.20 18:47
네 맞아요.
$a = 1;
$b = $a;
$a = 2;
echo $b;
이 소스의 출력값은 1입니다.
$a = 1;
$b =& $a;
$a = 2;
echo $b;
이 소스의 출력값은 2입니다.
무슨 차이인지 아시겠나요? -
애니즌
2014.05.20 20:02
네 이해했습니다:) 감사합니다
오류 무시로 알고 있습니다. :)