On Thu, 2002-03-07 at 06:25, Matt Williams wrote:
> Hi all
>  
> I get a variable that is set be a select box on a page.
> I want to use this variable to call a function within a class that is based 
> on it's name.
> 
> so if $var = "me"
> 
> I want to call $class->me_function();
> 
> or if
> 
> $var = "you"
> 
> call
> 
> $class->you_function();
> 
> How can I use the variable as part of the function name to call.
> 
> TIA
> 
> matt

You can do this quite simply with variable function names. Essentially, 
create a variable with the name of the method you want to call, and use 
that where you would otherwise use the method name in the call: i.e. if
you have the name of a function in $funcname, you would do
$obj->$funcname(). Here's a full example:

<?php
error_reporting(E_ALL);

class foo {
    function me_foo() {
        echo "Me Foo!\n";
    }

    function you_foo() {
        echo "You Foo!\n";
    }
}

$foo = new foo;

$test = 'me';

// The direct way:
$foo->{$test . '_foo'}();

// Slightly less direct but perhaps more readable:
$method = $test . '_foo';
$foo->$method();

$test = 'you';
// The direct way:
$foo->{$test . '_foo'}();

// Slightly less direct but perhaps more readable:
$method = $test . '_foo';
$foo->$method();

?>


Hope this helps,

Torben

-- 
 Torben Wilson <[EMAIL PROTECTED]>
 http://www.thebuttlesschaps.com
 http://www.hybrid17.com
 http://www.inflatableeye.com
 +1.604.709.0506


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to