You are here: Invoking static class functions within call_user_functions « All PHP « IT news, forums, messages
Invoking static class functions within call_user_functions

Posted by Craig Taylor on 10/25/07 18:02

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

 

Navigation:

[Reply to this 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

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