[thelist] PHP conditionally create a class method?
Stephen Rider
evolt_org at striderweb.com
Wed Aug 27 01:32:16 CDT 2008
Hi all --
In PHP I have two classes, a parent and child (child extends parent)
class parent_class {
...
}
class child_class extends parent_class {
// may or may not contain:
function myfunction() {...}
}
in parent_class I have this:
function parent_class() {
$this->create_missing_funcs();
}
function create_missing_funcs() {
error_log('hello');
if ( ! method_exists( $this, 'myfunctions' ) ) {
error_log('method doesn\'t exist');
function myfunction() {
...
}
} else {
error_log('method exists');
}
}
Page crashes with the following in my PHP log:
[27-Aug-2008 01:25:51] hello
[27-Aug-2008 01:25:51] method doesn't exist
[27-Aug-2008 01:25:52] PHP Fatal error: Call to undefined function:
myfunction() in /path/to/myscript.php on line 201
So... if ( ! method_exists( $this, 'myfunctions' ) ) returns true,
which should only happen if the method does _not_ already exist. But
then I'm getting an error that the method already exists.
Any idea what I'm doing wrong here? Should I be doing this differently?
The reason the function may or may not be there is that there are many
different potential child_classes to the one parent_class.
This is PHP 4, BTW. (Working in WordPress, which allows min PHP 4.)
Thanks for any info.
Stephen
More information about the thelist
mailing list