클래스에서 배열 복사
본문
class Menu{
private $menu = array(array('name'=>'menu1'));
public getMenu(){
return $this->menu;
}
}
$menu = new Menu();
$get_menu = $menu->getMenu();
$get_menu[0]['name']='test';
print_r($menu->getMenu());
위 코드에서 $get_menu는 복사된 배열이 와야하는데 밑에서 print_r을 찍어보면 클래스의 $menu 내용도 바뀌어있습니다. 위 클래스의 코드가 저게 다는 아니고 다른 메소드에서 $menu의 레퍼런스값을 불러서 처리하는 코드가 있긴한데요. getMenu메소드는 순수하게 딱 저코드뿐인데 이상하네요. getMenu 메소드에서 배열을 복사해서 리턴하는 방법이 없을까요?
!-->답변 3
public getMenu(){
$array = json_encode($this->menu);
return json_decode($array,true);
}
위처럼 해서 리턴해보세요
!-->마지막의 print_r에서 test가 나온다는 것은 말도 안되는 설명입니다
답변을 작성하시기 전에 로그인 해주세요.