0
C編寫PHP擴展,我想通過__toString()
一個用戶態對象(IS_OBJECT
)將字符串轉換(如果有),以及否則失敗。我應該使用什麼? 我不需要輸出zval
,只需char *
。PHP擴展:將對象轉換爲字符串__toString()
zval *zo;
switch (Z_TYPE_P(zo)) {
case IS_STRING:
... Z_STRVAL_P(zo) ...
break;
case IS_OBJECT:
... ???(zo) ...
break;
...
}
感謝您的回答。最後,我用'zend_make_printable_zval'(在Zend/zend.c中定義)解決了這個問題:SPL代碼片段很難看,'zend_std_cast_object_tostring'包含了違反我在問題中沒有提到的要求的行爲(對此很抱歉)。 –