함수 같은 건 아예 모르니 그냥 쉽게 설명을 해주시면 감사할 것 같습니다.
Context::addHtmlFooter($alert_script);
푸터에 스크립트를 밀어 넣으려고 위와 같이 했습니다
그런데 다른 자료들에서 보면 변수를 해제한다는 의미로..
unset($alert_script);
이렇게 해주던데요... 이것을 해주는 차이와 안해주는 차이가 뭔가요?
제가 밀어 넣은 스크립트는 단순히 알럿창을 띄우는 스크립트 입니다.
댓글 10
메모리라면 클라이언트쪽 메모리인가요 ? / 클라이언트쪽을 지우면 스크립트가 동작 안할거 같긴한데요 ㅋ
서버상에 차지하고 있는 변수의 메모리를 비워주는거죠.
그래야 서버가 빨리지지 않을까요
$output = 1;
unset($output);
$output = executequery(member.어쩌구);
이렇게 같은이름의변수가 달라져야할때 써준다고 생각하심댐.. 기억하는걸지워버린다는..
반복하는 같은 함수가 아닌데도 마지막에 지우는 경우가 있어서 궁금했습니다. 감사합니다.
PHP 실행이 종료되면 모든 변수는 자동으로 지워집니다. 따라서 어마어마하게 많은 (수백KB 이상의) 데이터가 들어 있는 게 아니라면 눈에 띄는 메모리 절약이나 성능 향상은 없습니다.
변수를 지워주는 것이 실제로 도움이 된다면 대개 그 다음에 실행되는 부분에서 엉뚱한 값을 받지 않도록 배려하는 의미에서입니다. 특히 레이아웃과 스킨에서는 모든 변수가 공유되고, 애드온도 다른 애드온이 선언한 변수를 볼 수 있기 때문에 내가 임시로 사용한 변수를 지워주지 않으면 다른 파일이 오작동할 수 있어요. 예를 들면 애드온에서 $output을 덮어쓰는 바람에 그 다음에 실행되는 애드온들이 줄줄이 맛이 가버리는 일이 가끔 있습니다.
그럼 저번에 문의에 답주셨던 $logged_info 변수만 사용했는데 이게 먹는게 저희 사이트의 특정 애드온이나 레이아웃에서 이미 사용된 것이 영향을 주는 것이라고 봐야 하는 거군요....
근데 재밌는건 다른 애드온 자료도 보면 저 변수만 선언한 경우가 많더라구요. 이 경우 저희 처럼 동작되는 사이트 안되는 사이트 생겨나는 것 같더라구요.