Hi

I'm trying to dynamically choose and call a method from within a class but actually calling a method dynamically does not seem to work whatever I try using php 4.3.3

Hopefully this test script will illustrate my point better, I always get to the "I know we get to here" bit, but there is no other output.

Is what I want to achieve possible?

regs

Darren


<?php


class foo
{
        var $lookup;
        
        function foo()
        {
                $this->lookup  = array();
        }

        function getItem($entry)
        {
                if (!array_key_exists($entry, $this->lookup))
                {
                        print "I know we get to here\r\n";
                        
                        // random attempts at calling the relevant                     
                 // method
                        
                        $this->{"_foo_" . $entry . "()"};
                        
                        $this->{"_foo_" . $entry};
                        
                        $this->${"_foo_" . $entry . "()"};
                        
                        $foo = "_foo_" . $entry . "()";
                        $this->$$foo;
                        
                        $foo = "_foo_" . $entry;
                        $this->$$foo;
                }
                return $this->lookup[$entry];
        }

        function _foo_bar()
        {       
                print "bar\r\n";
                $bar = 1;
                $this->lookup["bar"] = $bar;
                unset($bar);
        }

        function _foo_bar2()
        {       
                print "bar2\r\n";
                $bar2 = 2;
                $this->lookup["bar2"] = $bar2;
                unset($bar2);
        }
}

$foo = new foo();
print $foo->getItem("bar2");

?>

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



Reply via email to