ID: 24105
Updated by: [EMAIL PROTECTED]
Reported By: knotwell at ix dot netcom dot com
Status: Open
-Bug Type: Class/Object related
+Bug Type: Documentation problem
PHP Version: 4.3.1
New Comment:
It's by design.
You're supposed to pass a string there, see below:
<?php
function generic_data_handler($specializedFn,$specializedFnData) {
return $specializedFnData->$specializedFn($specializedFnData);
}
class z {
var $x = 10;
var $y = 4;
function _mult($me) {
return($me->x * $me->y);
}
function aStupidlyContrivedExample() {
return generic_data_handler('_mult', $this);
}
}
$a = new z;
print $a->_mult($a);
// an error from the runtime system
print $a->aStupidlyContrivedExample();
?>
Previous Comments:
------------------------------------------------------------------------
[2003-06-09 19:32:10] knotwell at ix dot netcom dot com
I've checked the documentation, but it doesn't address this
issue. As a result, I'm unsure if this is a bug or by design.
Anyhow, it appears class functions aren't first class data objects.
I've included a short example leading to a
"Call to undefined function" message as a example:
<?php
function generic_data_handler($specializedFn,$specializedFnData) {
return $specializedFn($specializedFnData);
}
class z {
var $x = 10;
var $y = 4;
function _mult($me) {
return($me->x * $me->y);
}
function aStupidlyContrivedExample() {
return generic_data_handler($this->_mult,$this);
}
}
$a = new z;
print $a->_mult($a);
// an error from the runtime system
print $a->aStupidlyContrivedExample();
?>
Apologies in advance if this is common knowledge or not a bug.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=24105&edit=1
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php