> On Tue, 19 Aug 2014, Wei Dai wrote: > > > > On Mon, 18 Aug 2014, Wei Dai wrote: > > > > > > > > I'm trying to call a function inside a module, a PHP_FUNCTION. > > > > > Other than zend_eval_stringl, what's the direct way to do it? > > > > > > > > > > > > > Please refer to call_user_function and call_user_function_ex. > > > > > > > > > > > > > Actually, you need to be careful with this. If you are calling > > > another PHP function in the same extension, do *not* use > > > call_user_function. Instead, create a common C function that you > > > can call from whereever you need to. call_user_function(_ex) is not > > > fast. > > > > > > > > > > i agree. > > > > here is a scenario: > > > > i was wrote an extension, and i need to call some PHP function like > > “strtr (http://lxr.php.net/s?defs=strtr&project=PHP_5_4)” “*trim" or > > a function in another extension but it doesn’t have a common C > > function. However, i don’t want to copy the implement code into my > > extension. > > > > so, i have two options: > > > > 1. copy the duplicate code into my extension, It can be fast in this > > way, but the code is not beautiful. > > > > 2. call call_user_function(_ex) , it’s slower than the first option, > > but the code is more simple and beautiful than the first option. > > > > > or: > > 3. refactor the functionality in PHP so that trim or others *can* be > used in extensions. > > I would not pick option 2, especially not if you're going to call this > function a lot. Calling a PHP function directly involves a lot more > overhead than just calling a C-function. > you are right. the reason to write php extension, because we can get performance improvement.
cheer, Wei Dai