看到兩段代碼:// 第一段代碼int symbols;do {
symbols = zend_hash_num_elements(&EG(symbol_table));
zend_hash_reverse_apply(&EG(symbol_table), (apply_func_t) zval_call_destructor TSRMLS_CC);
} while (symbols != zend_hash_num_elements(&EG(symbol_table)));// 第二段代碼zend_objects_store_call_destructors(&EG(objects_store) TSRMLS_CC);這段代碼的意思是不是 反向遍歷 symbol_table ,然后把每個需要執(zhí)行析構(gòu)函數(shù)的 zval 扔到 TSRMLS_CC 里,這家伙就是一個數(shù)組了,然后作為 zend_objects_store_call_destructors 函數(shù)的參數(shù),zend_objects_store_call_destructors函數(shù)內(nèi)部再遍歷它(TSRMLS_CC)?是這樣嗎?謝謝諸位
PHP源碼的疑問
寶慕林4294392
2018-08-18 16:25:00