PHP에서 정적 변수를 삭제하는 방법: [$temp = null]과 같이 재정의하여 삭제할 수 있습니다. unset() 함수를 사용하여 정적 변수를 삭제할 수는 없습니다. 이 함수는 지역 변수만 파괴하기 때문입니다.
PHP는 정적 변수를 설정합니다. 이 정적 변수를 삭제해야 하는 경우 unset($tmp)을 사용하여 삭제하면 다음과 같은 사항을 찾을 수 있습니다. 재귀 함수로서 내부에 정적 변수를 설정한 후 foreach()에서 이 재귀 함수를 사용해야 합니다. 이 재귀 함수가 처음 실행되면 값을 지워야 합니다. unset()을 사용해도 효과가 없으면 정보를 참조한 후 $tmp=null을 사용해야 한다는 것을 알았습니다.
(권장 튜토리얼: php 비디오 튜토리얼)
데이터 프로토타입은 배열입니다.
$data=[ '1'=>[ 'pid'=>0, 'title'=>'test1' ], '2'=>[ 'pid'=>1, 'title'=>'test2' ], '3'=>[ 'pid'=>2, 'title'=>'test3' ], ];
Unset() 사용:
function getBreadNav($data,$id,$mark=1){ static $tmp; if($mark==1){ unset(); } if(isset($data[$id])){ $tmpresult['title']=$data[$id]['title']; $tmp[]=$tmpresult; getBreadNav($data,$data[$id]['pid'],$mark=2); } return $tmp; }
변수에 null 할당:
function getBreadNav($data,$id,$mark=1){ static $tmp; if($mark==1){ $tmp=null; } if(isset($data[$id])){ $tmpresult['title']=$data[$id]['title']; $tmp[]=$tmpresult; getBreadNav($data,$data[$id]['pid'],$mark=2); } return $tmp; }
이것은 루프의 시작입니다.
for($i=0;$i<5;$i++){ getBreadNav($data,3); }참고할 사항 예, 매뉴얼에는 명확한 지침이 있습니다. 함수에서 정적 변수를 unset()하면 이 정적 변수는 함수 내에서 삭제됩니다. 그러나 이 함수가 다시 호출되면 이 정적 변수는 마지막으로 삭제되기 전의 값으로 복원됩니다. 따라서 여기서 해야 할 일은 이를 지우고 null에 할당하는 것입니다. 참고: 함수에서 unset()의 동작은 삭제하려는 변수 유형에 따라 달라집니다. 함수에서 전역 변수를 unset()하면 지역 변수만 소멸되고 호출 환경의 변수는 unset()을 호출하기 전과 동일한 값을 유지합니다. 정적 변수를 등록 취소하려면 재정의해야만 삭제할 수 있습니다. 관련 권장 사항:
위 내용은 PHP에서 정적 변수를 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!