I need to record the names of functions, and then use them later.
Recently I found the following example within the on-line documentation:
<?php
function foo() {
echo "In foo()<br />\n";
}$func = 'foo'; $func(); // This calls foo()
?>
then I supposed that it was easy to extend this concept to objects and wrote the following case:
<?php
function foo() {
echo "In foo()<br />\n";
}class a {
var $fname;
function a() {
$this->fname = 'foo'; // the name of the function
} function execute() { // method to execute the named function
$this->fname();
// I also tried here
// {$this->fname}();
// ${this->fname}();
// "$this->fname"();
// but none of these worked
}
}$w = new a; $w->execute();
?>
And this was the error I got:
X-Powered-By: PHP/4.1.2 Content-type: text/html
<br>
<b>Fatal error</b>: Call to undefined function: fname() in <b>-</b> on line <b>14</b><br>
I know that this can be solved easily with an intermediate variable:
$temp = $this->fname; $temp();
but I wonder if there is a more direct method.
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php

