teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

”zval自体”と書いたので"zval \*"も解放される、と勘違いすると思います。"zval変数”に直しました。

2017/05/27 08:58

投稿

YasuoOhgaki
YasuoOhgaki

スコア51

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