Reply to Re: Invoking static class functions within call_user_functions

Your name:

Reply:


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]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация