hnwの日記

PHP extension中でvar_dumpデバッグする方法

誰得な内容ですので簡潔に。

#include "Zend/zend_interfaces.h"

// (略)

    zval *zp;

    // (中略、この間にzpに意味のある値が入ったとする)

    // zpの型が何だろうと綺麗に表示!
    zend_call_method_with_1_params(NULL, NULL, NULL, "var_dump", NULL, zp);


Z_LVAL_PとかZ_STRVAL_Pとかを使い分けずに済むので楽チンです。