PHP中閉包的一些常見問題介紹

PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。最重要的是PHP可以用C、C++進行程序的擴展!以下是小編爲大家搜索整理的'PHP中閉包的一些常見問題,希望能給大家帶來幫助!更多精彩內容請持續關注我們考試網!

PHP中閉包的一些常見問題介紹

首先說明下...閉包是js高級特性之一...但並非js獨有, python, php(5.3以上版本) 都是支持閉包的..

官方解釋: 所謂“閉包”,指的是一個擁有許多變量和綁定了這些變量的環境的表達式(通常是一個函數),因而這些變量也是該表達式的一部分

john resig解釋: 閉包就是內部函數可以訪問外部函數中所定義的變量,即使該函數已經執行結束。

如果你還是不能明白上面那句話...那麼我就換句話來說:

在js中...執行一個函數A...當函數A執行完後...理論上來講...改函數A內所有被定義的 臨時變量都將被 當成可回收的垃圾等待垃圾回收....然而在這個過程..有一種臨時變量是無法被垃圾回收的...當A函數中有一個內部函數a時.a函數內引用了A中定義的臨時變量...並且a函數在A函數執行完後..仍然可以被外部訪問到時...被a函數所引用的臨時變量就無法被當成垃圾等待垃圾回收.. 而a函數可以被外部訪問的同時..就生成了一個閉包...