| 
	
 | 
 Posted by Jerry Stuckle on 05/05/06 05:31 
aroldao@gmail.com wrote: 
> Greetings Everyone, 
>  
>    In php it's possible to create a new object based on a name stored 
> in variable, i.e: 
>  
>                 $className = "CSome$name"; 
>                 $newclass = new $className(); 
>  
>    However is it possible to call a function from a class using a name 
> stored in a variable? For example: 
>  
>                 $funcname = "operation"; 
>                 $func= "\$someclass->$funcname"; 
>  
>                 $func( arg1, arg2 ); 
>  
>         With the same result as 
>  
>                 $someclass->operation( arg1, arg2 ); 
>  
>    Any feed-back will be much appreciated.  
>  
> Cheers, 
> Roldao 
>  
 
Hi, Roldao, 
 
Well, you have a problem.  To call a non-static method in a class, you must have  
an object of the class - not the name of the class. 
 
So, for instance: 
 
   class MyClass { 
     function operation() { 
       ... 
     } 
   } 
 
   MyClass->operation() 
 
will fail. 
 
However, if you do 
 
   $myclass = new MyClass(); 
   $myclass->operation(); 
 
You can also call it indirectly, with 
 
   $function = "operation"; 
 
   call_user_func(array($myclass), $function); 
 
--  
================== 
Remove the "x" from my email address 
Jerry Stuckle 
JDS Computer Training Corp. 
jstucklex@attglobal.net 
==================
 
[Back to original message] 
 |