How can I call a static method on a variable class?

Calling static functions on a variable class name is apparently available in PHP 5.3:

Foo::aStaticMethod();
$classname="Foo";
$classname::aStaticMethod(); // As of PHP 5.3.0

http://php.net/manual/en/language.oop5.static.php

Could definitely use that right now myself.

Until then you can’t really assume that every class you are loading is designed to be a singleton. So long as you are using < 5.3 you’ll have to just load the class and instantiate via the constructor:

function loadClass($class) {
  $sClassPath = SYSPATH."/classes/{$class}.php";
  if (file_exists($sClassPath)) {
    require_once($sClassPath);
    $class = new $class;
  }

}

OR

Just load the class without creating an object from it. Then call “::getInstance()” on those meant to be singletons, and “new” on those that are not, from outside of the loadClass() function.

Although, as others have pointed out earlier, an __autoload() would probably work well for you.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)