OK guys, thanks for all your inputs.
Based on your guidance, I have tested the following code with a
series of variations:
class foobar {
function bar2 () {
echo "Yep, in bar2() right now\n";
}
public function foo2 () {
$a = "bar2"; // Experiment 0
$a(); // Fatal error
}
}
And the variations:
$a = "bar2"; // Experiment 0
$a(); // Fatal error: Call to undefined function bar2()
$a = "foobar::bar2"; // Experiment 1
$a(); // Fatal error: Call to undefined function bar2()
$a = "bar2"; // Experiment 2
eval($a."();"); // Fatal error: Call to undefined function bar2()
$a = "foobar::bar2"; // Experiment 3
eval($a."();"); // Works but far from elegant
$a = "bar2"; // Experiment 4
$this->$a(); // Works fine
$a = "bar2"; // Experiment 5
self::$a(); // Works fine
So, I have a working solution right now. But I still don't understand the
essence of the differences between experiment #1 and #4. Also, I don't
understand the need to specify the class name in experiment #3, coming
from #2. Functions bar2() and foo2() are part of the same class foobar,
and I would assume that the name 'bar2' would be in scope of the function
foo2.
BTW: I'm running PHP v5.2.0-8 build and distributed by Debian (etch1).
Thanks again and regards, Paul.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php