Extra Form
PHP PHP 7.2
CMS Rhymix

layout_info->menu_icon_1

 

최종 변수는 

 

layout_info->menu_icon_11 ~ layout_info->menu_icon_17

 

이런식으로 유동적으로 불러와야 하는데요.

 

마지막 숫자 1~7 은 $i  가 가집니다.

 

유동적으로 적용될 수 있도록 코드를 작성하려면 어떻게 해야 할까요?

  • profile
    $menu = "menu_icon_1";
    $temp = $menu.$i;
    layout_info->$temp
    이렇게 하면 될것 같은데요.
  • profile profile
    {layout_info->$temp}

    마지막 출력단 이렇게 했는데 위 내용이 그대로 출력이 되어 버리네요.
  • ?

    레이아웃이나 스킨 등 html 쪽에서는
    {@ $menu_icon = get_object_vars($layout_info)['menu_icon'.$i]}
    {$menu_icon}


    php 등에서는
    $layout_info->{'menu_icon'.$i}

  • ? profile
    {@ $menu_icon = get_object_vars($layout_info)['menu_icon'.$i]}
    {$menu_icon}

    요거 레이아웃에 적용해봤는데 아무것도 안나오네요.
  • ? profile
    {@ $menu_icon = get_object_vars($layout_info)['menu_icon_1'.$i]}

    아 잘되네요. 예약된 예약어가 달라서 그랬네요.
    요거 알려주신거 공부해보겠습니다. 감사합니다.
  • profile profile
    한가지 PHP에서 팁드리자면
    보통 ''<-, 따옴표 혹은 ""<- 쌍따옴표에 들어간 문자들을 문자열이라고 부르는데, 이 문자열들을 변수이름을 그대로 사용할 수 잇는 방법도 있습니다.

    일반 따옴표에서는 안되고 쌍따옴표를 쓰면 문자열의 내용을 아래와 같이 사용이 가능합니다.

    $nick_name = '람보';
    $text = "{$nick_name}님 께서 로그인 하셨습니다.";
    -> 람보님 께서 로그인 하셨습니다.

    $nick_name = '람보';
    $text = "$nick_name 님 께서 로그인 하셨습니다.";
    -> 람보 님 께서 로그인 하셨습니다.

    $nick_name = '람보';
    $text = '$nick_name 님 께서 로그인 하셨습니다.';
    -> $nick_name 님 께서 로그인 하셨습니다.


    띄어쓰기 및 변수 이름을 확인해보시면서 사용하시길 권장드립니다.

    그리고 이런 구조등등을 확실하게 구분할 수 있는 IDE 에디터를 사용하시면 변수 및 내용들이 구분되어서 확인이 가능해요