您正在查看 "web程序员之php扩展" 分类下的文章
2011-04-17 1:44 P.M.
php函数call_user_func和call_user_func_array详解
call_user_func函数类似于一种特别的调用函数的方法,使用方法如下: function a($b,$c) { echo $b; echo $c; } call_user_func('a', "111","222"); call_user_func('a', "333","444"); //显示 111 222 333 444 ?>
调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的: class a { function b($c) { echo $c; } } call_use |
2008-05-11 1:51 P.M.
一、默认情况下,C++是使用.cpp作为扩展名的,而PHP是用C写的,因此必须使用C++提供的C连接交换指定符号extern "C"来解决这个问题,以下两部分语句必须被包含:
|
2008-05-11 3:16 A.M.
2008-05-11 2:26 A.M.
PHP5CPP_*_OBJ_PARAMS() 和 PHP5CPP_*_NO_OBJ_PARAMS() 会在调用我们的函数/方法时被使用,它们会处理从PHP方传进来的参数。在封装函数和声明中,可以通过zend_parse_parameters() 去分析这些参数。
你可以注意到,宏PHP5CPP_*_PARAMS() 是以 else结尾的。这样的话,当所处理的不是一个对象时,它会试着用结构化方式去处理。这些宏都可以在下边找到。
为PHP 5写的类处理的部分已经写完了,下边的部分是为PHP 4写的很简单易懂 |
2008-05-11 2:25 A.M.
php5cpp_myclass_methods[] 把MyClass中的函数影射成可在PHP使用的标准函数。这样我们在PHP中就可以使用 myclass_new, myclass_get_string 等来执行这些函数。你会发现这里并没有定义myclass_destroy函数,因为在你对一个类实例使用unset() 时,系统会自动调用它的释构函数的了。
在结构php5cpp_obj中的枚举变量 php5cpp_obj_type 声明了对象的类型。如果你想在扩展中再加入一个类,如: AnotherClass,你需要再增加一项 |