>  기사  >  백엔드 개발  >  PHP에서 변수를 파괴하는 함수를 사용하는 방법

PHP에서 변수를 파괴하는 함수를 사용하는 방법

醉折花枝作酒筹
醉折花枝作酒筹원래의
2021-08-06 11:15:511658검색

이전 글에서는 객체나 배열을 역직렬화하는 방법에 대해 배웠습니다. 필요하다면 "PHP에서 배열과 객체를 역직렬화하는 방법"을 읽어보세요. 이번에는 함수를 사용하여 변수를 소멸시키는 방법을 소개하겠습니다. 필요하시면 참고하시면 됩니다.

글을 시작하기에 앞서 변수 소멸이 무엇인지 먼저 살펴보겠습니다.

PHP 변수 또는 객체의 소멸은 명시적 소멸과 암시적 소멸로 나눌 수 있습니다.

1 명시적 소멸, 객체가 참조되지 않으면 소멸되므로 설정을 해제하거나 NULL을 할당할 수 있습니다.

2. 암시적 파괴 PHP는 코드의 마지막 줄이 실행될 때 적용된 모든 메모리를 해제해야 합니다.

오늘 소개할 내용은 명시적 파기 설정이 해제된 내용입니다.

먼저 작은 밤부터 살펴보겠습니다.

<?php
class Human { 
  public $name = &#39;张三&#39;; 
  public $gender = null; 
  public function __destruct() { 
      echo &#39;结束!<br />&#39;; 
  } 
} 
$a = new Human(); 
$b = $c = $d = $a;
unset($a);
$d=null;


echo &#39;<hr />&#39;;
var_dump($a);
echo &#39;<hr />&#39;;
var_dump($b);
echo &#39;<hr />&#39;;
var_dump($c);
echo &#39;<hr />&#39;;
var_dump($d);
?>

결과는

PHP에서 변수를 파괴하는 함수를 사용하는 방법

이제 더 이상 고민하지 말고 이 기능을 살펴보겠습니다.


unset() 함수는 주어진 변수를 파괴하는 데 사용됩니다.

따라서 unset()은 실제로 변수의 메모리 값을 파괴하지 않고 변수와 메모리 사이의 관계를 끊고 변수 이름을 제거하지만 참조되는 한 메모리는 해제되지 않습니다. ; 그리고 PHP에서는 기본적으로 객체의 값이 참조로 전달되는데, 이는

에도 값이 있는 이유를 설명합니다. Human类中,$a被unset()了,但是$b =$c = $d

이 함수의 구문을 살펴보겠습니다.

void unset (要销毁的变量)

함수에서 unset()이 전역 변수인 경우 지역 변수만 소멸되고 호출 환경의 변수는 unset()을 호출하기 전과 동일한 값을 유지합니다.

unset()이 함수에서 참조로 전달된 변수인 경우 로컬 변수만 소멸되고 호출 환경의 변수는 unset()을 호출하기 전과 동일한 값을 유지합니다.

unset()이 함수의 정적 변수인 경우 정적 변수는 함수에서 소멸됩니다. 그러나 이 함수가 다시 호출되면 정적 변수는 마지막으로 삭제되기 전의 값으로 복원됩니다.

그게 다입니다. 더 알고 싶다면 여기를 클릭하세요. → →

php 비디오 튜토리얼

위 내용은 PHP에서 변수를 파괴하는 함수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.