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. 


cheers,
Derick

-- 
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter: @derickr and @xdebug
Posted with an email client that doesn't mangle email: alpine
-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to