PHP 5.3 已經 deprecate zend_get_parameters_ex

這幾天在把一個程式作 PHP 5.2 轉換到 PHP 5.3 的環境下,發現以前有一個 zend_get_parameters_ex 已經被 deprecated 了。 Example: [code lang=”c”] zend_get_parameters_ex( 1 , &arg1 ) [/code] 簡單一點的改法就是把他改使用 zend_parse_parameters 這個 method 。 Example : [code lang=”c”] zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC , “sz” , &arg1, &arg1_len, &arg2) [/code] 這個 function 比較方便,也可以不用把 zval 轉成 c 所需要的型態,可以直接放入原有的參數型態,像使用 char or long 一些原生參數就方便多了。 Old Method Example: [code lang=”c”] zval **arg1; std::string str; zend_get_parameters_ex( 1 , &arg1 ) ; convert_to_string_ex( arg1 ); str = Z_STRVAL_PP( arg1 ); [/code] New Method Example: [code lang=”c”] char *arg1; int arg1_len; std::string str; zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC , “s” , &arg1, &arg1_len); str = string(arg1); [/code]