|
Posted by Craig Taylor on 10/25/07 19:47
Just what I was looking for...
When I had looked on php.net/call_user_func for this situation I saw
the example and misread it as not having the arrays - rechecked after
your post and my eyes are seeing it now... (that or the evil gremlin
that sneaks in my code is now messing with other people's sites
too... )
Thanks,
On Oct 25, 3:20 pm, ZeldorBlat <zeldorb...@gmail.com> wrote:
> On Oct 25, 2:02 pm, Craig Taylor <ctalk...@gmail.com> wrote:
>
>
>
> > Apparently there is no 'good' way to invoke static class functions
> > from within the call_user_function in PHP 5 (I'm using PHP 5 1.2).
>
> > Example:
> > ------------
> > <?php
> > // Does php support something akin to C style function pointers??
> > //
>
> > class testClass
> > {
> > static function myFunction( $parm1 )
> > {
> > echo 'Hello, parm1 = '.$parm1."\n";
> > }
>
> > }
>
> > $className = 'testClass';
> > $fnName= 'myFunction';
>
> > // Are these legal?
> > //($fnPtr)('abc'); ... NOT LEGAL
> > //$fnPtr('abc'); ... NOT LEGAL
>
> > // call_user_func( $className, $fnPtr, 'abc' );
>
> > // Gah... need to instantiate static class members...
> > $x = new $className();
> > $x->{$fnName}('abc');
> > ?>
>
> > ----
>
> > There is documentation on php.net for call_user_func on how to invoke
> > it with a non-static class member, eg: call_user_func( 'classname',
> > 'fnName', 'param1'... ).
>
> > The way that I've got it working feels like a kludge to me as I'm
> > having to instantiate an object that is never going to be used. (I'm
> > using static functions within the class as helper functions for my
> > application's data classes).
>
> > Thanks,
>
> > - Craig Taylor
>
> Call a class (static) method:
>
> call_user_func(array('testClass', 'myFunction'), $arg1, $arg2, $arg3);
>
> Call an instance method:
>
> $t = new testClass();
> call_user_func(array($t, 'myFunction'), $arg1, $arg2, $arg3);
[Back to original message]
|