回答編集履歴
1
”zval自体”と書いたので"zval \*"も解放される、と勘違いすると思います。"zval変数”に直しました。
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
- シンボルテーブルに登録されたPHP変数(zvalでPHPスクリプトから変数として利用できる物)
|
6
6
|
- PHPのリソースとして登録された変数(例えば、pgsqlの場合、接続リソース)
|
7
7
|
|
8
|
-
zval
|
8
|
+
zval変数を解放する場合はzval_dtorなどを使います。これを利用するとzvalの中に何が入っていても、文字列でも配列でもオブジェクトでも、正しいデストラクタが呼ばれて綺麗に解放されます。
|
9
9
|
|
10
10
|
モジュール内で一時的に使うzval *やchar *などを作った場合、efreeが必要になります。(zvalの場合、普通はzvalポインタ変数にしてemallocするのではなく、zval変数にしてzval自体のメモリは解放しなくても良いようにします。しかし、できない場合もあるのでその場合は解放します)
|
11
11
|
|