[thelist] PHP conditionally create a class method?

Ken Snyder kendsnyder at gmail.com
Wed Aug 27 16:26:28 CDT 2008

Stephen Rider wrote:
> ...
> 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

As I understand your situation, the usual approach is to use an 
autoloader or a factory class.  For example:

class MyPersonFactory {

  function getInstance() {
    if (STATE == 'TX') {
      include 'Person.tx.php';
    } elseif (STATE == 'CA') {
      include 'Person.ca.php';
    return new Person();


Then each of your versions of Person can have different parent classes.

More information about the thelist mailing list