2009年11月 的存档
如果一个函数叫 function test( & $retCode ) { $retCode = 1; } 那么test($ret)后,$ret的值就为1,这个和C/C++里的指针、引用参数是一样的 在PHP扩展模块里,我们也可以实现这种写法 PHP_FUNCTION(php_test) { zval *out = NULL; zval *Rg = NULL; if( zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,”z”, &out) == FAILURE ) { RETURN_NULL(); } zval_dtor(out); ALLOC_INIT_ZVAL(Rg); array_init(Rg); add_assoc_string(Rg, “name”, “slackcode”, sizeof(“slackcode”)-1, 1); add_assoc_long(Rg, “age”, -1); add_assoc_long(Rg, “luckyNum”, 11); ZVAL_ZVAL(out, Rg, 1, 1); RETURN_LONG(0); } 这样子,我们调用 $person [...]
实际看来,应该叫函数别名比函数指针恰当吧,但我之前还不知道可以这么弄。 只是今天看回自己一年前写的一个脚本程序,发现很多冗余代码,于是就重写了。 重写后发现只要50%的代码,很简洁,得益于这个函数别名了。 fun1( ) { echo “I am fun1!” } fun2( ) { echo “I am fun2!” } fun1 fun2 fun3=fun1 $fun3 结果是: I am fun1! I am fun2! I am fun1! 其实就这么回事了 然后,你还可以这样 idx=1 fun$idx 结果是: I am fun1!
