....
PHP_FE(sample_count_array, php_sample_array_arginfo)
....
這樣我們便把類型校對的工作交給了Zend Engine,是不是有種如釋重負的感覺!You've also given your argument a name so that the generated error messages can be more meaningful to script writers attempting to use your API. 我們同樣可以對參數中的對象進行校正,限制其是繼承自某個類或者實現了某個介面等等。
ZEND_BEGIN_ARG_INFO(php_sample_class_arginfo, 0)
ZEND_ARG_OBJ_INFO(1, obj, stdClass, 0)
ZEND_END_ARG_INFO()
需要注意的是,此時第一個參數的值是數字1,代表著以引用的方式傳遞。其實這個參數對於對象來說幾乎沒用,因為ZE2中所有的對象在當作函數參數的時候都是預設以引用的形式傳遞的。但是我們又必須把這個參數設定為數字1,除非你不想讓你的擴充與PHP4相容。在PHP4中,對象是傳遞的一個完整Copy,而非通過引用。