PHP 8.2에서 생긴 슈퍼맨 딜레마 ~
PHP 8.2는 주목할 만한 변화가 없는 것처럼 보였는데, 라이믹스 사용자들에게는 영향이 크지 않을까하는 하나가 눈에 띄네요.
무슨 말이냐면, "....... ${변수} ......" 가 deprecated 되었네요. php 개발팀에서는 이런 표현을 아무도 안쓰는 것 같으니까 없애버리겠다는 의도였던 것 같은데, 라이믹스 사용자들이 안보였나봅니다 ㅎㅎ ㅠㅠ.
슈퍼맨은 팬티를 밖에 입어야 슈퍼맨인데, 풍기문란이라면서 안에 입던지, 레깅스는 벗고 팬티만 입던지 하라는 말입니다. 갑자기 슈퍼맨이 x태가 되는 순간인 것 같습니다 ㅎㅎㅎ.
$rhymix = "Rhymix";
"Hello ${rhymix}" => deprecated
"Hello {$rhymix}" => ok
"Hello $rhymix" => ok
$rhymix = "Rhymix";
$rhymixptr = "rhymix";
"Hello ${$rhymixptr}" => deprecated
"Hello {$$rhymixptr}" => ok
"Hello $$rhymixptr" => ok
8.2에서는 deprecated에 그치지만, 과거 전례로보면 차차 warning을 거쳐 error로 발전하지 않을까 합니다. 워째 이런 일이...

토비리
Lv. 5
댓글 6
아.. 라이믹스 템플릿 문법을 못쓰게되는건가요?
ide가 두번째 구문으로만 작성하라고 해서 저는 두번째로만 쓰고 있네요.
세번째는 여러변수 삽입시 경계구분이 어렵다는 단점이 있습니다.
라이믹스 템플릿 문법은 {$rhymix} 입니다. ${rhymix} 형태는 단 한 번도 지원한 적이 없고, 그렇게 사용하는 자료를 본 적도 없습니다. 일반적인 템플릿에서는 중괄호 충돌 때문에 문자열 안에 "Hello ${rhymix}"라고 쓰는 것도 불가능에 가깝지요. 즉, 템플릿은 아무 문제가 없습니다.
템플릿이 아닌 PHP에서야 어떻게 쓰든 자유이니, 모듈이나 애드온에서 위와 같은 문법을 애용하셨다면 슬슬 고치셔야겠지만... 이건 라이믹스 서드파티 자료에 국한된 문제는 아니고요.
템플릿 문법은 전처리 된 후에 php로 처리되니까, php 문법과는 상관없이 뭘로 쓰든 상관없죠. 따라서, 위에서 말한 것은 템플릿 문법으로 처리되지 않는 부분에 쓰는 것을 말한 것입니다 ㅎ.
그러고보니, <div cond="${$name}"> 같은 것은, 문자열 안에 쓴 것이지만 템플릿 전처리 거치면서 if( ) 안으로 들어가니까, 이번에는 그냥 넘어갈것 같군요.
그래서 위와 같이 문제가 될 수 있는 부분이 존재하지 않으니 혹시나 제자료 사용하시는 분들에게 알려드립니다 :)