(제목이 변경됨) unset 변수로도 리소스를 해제할 수 없는 오류가 있는 PsysH

2201 단어 PSyshPHP
PHP 매뉴얼리소스의 항목을 읽은 후에 이런 기술이 있습니다.
PHP4 Zend 엔진에서 가져온 참조 컴퓨팅 시스템으로 인해 더 이상 참조되지 않는 리소스(Java와 동일)는 자동으로 삭제됩니다.이 경우 이 리소스에서 생성된 모든 리소스는 Gabel 집전극에서 방출됩니다.그래서result 함수를 사용하여 메모리를 수동으로 열 필요가 거의 없습니다.
그러나... 손 옆에 있는 OSX로 아래 코드로 무한 순환하고 파일을 수동으로 삭제할 때 동작에 차이가 있다.
fclose
$fp = fopen('test.txt', 'a');
fclose($fp);
while (true) { }
unset
$fp = fopen('test.txt', 'a');
unset($fp);
while (true) { }
flclose의 경우 정상적으로 삭제할 수 있지만 unset의 경우 '사용 중' 으로 삭제할 수 없습니다.스크립트를 강제로 끝내면 풀리지만, 끝날 때까지 풀리지 않습니다.
  • flock(\$fp, LOCK UN)의 록 해방은 말할 것도 없고, fclose($fp)도 잘 써야 한다
  • 귀찮으면 SplFileObject
  • 를 사용하세요.
    정정하다.이런 곳에서 차별이 있을 줄은 몰랐는데 실제로는 while 순환이 아니라 psysh에서 확인됐다.

    실제로 첫 번째 문장에 쓴 대로 해 보았는데 @hnw 선생이 말한 것처럼 올바른 행동이 되었다.PsysH의 기호표 관리 방법에 문제가 있는지 살펴보는 것이 좋습니다.
    나는 자신의 생각에 대해 잘못된 보도를 써서 사과했다.폐를 끼쳤습니다.

    좋은 웹페이지 즐겨찾기