Hey guys, you can extend a _class_ from an existing _class_ but not from a _string_constant_ (Ex1 - MY_BASE_CLASS is evaluated to constant of type string) neither from a _string_variable_ (Ex2 - $my_base_class_var is a variable of type string).


To be able to use different base classes with the same name just change the reference to the different settings files that contain the class declared with the same name but with different functionality, perhaps in the following way:

<?php
  $a = 1;
  // blah blah
  if ($a==1) {
    include_once("settingsfile1.php");
  } else {
    inclide_once("settingsfile2.php");
  }
?>

Or even (much) better create a single base class in a single configuration file and different modified instances of that class used for each of the different configurations you may have.


Boyan





Jackson Miller wrote:


On Thursday 30 October 2003 02:15 pm, Marek Kilimajer wrote:

Can you show it once again. In your first email you use a constant, not
variable.

Sure. In my first email I said that I had tried with a variable too (but didn't show the code).


Ex1 gives a "cannot inherit from undefined class" error
Ex2 gives a "parse error, expecting T_STRING"

Ex1 (with constants):
<?php

// settings to be set on install of the app
define("MY_BASE_CLASS","base_class");
define("MY_BASE_CLASSFILE","base_class.php");

// require the class file
require_once(MY_BASE_CLASSFILE);

class my_child_class extends MY_BASE_CLASS {
    // yada yada
}
?>

Ex2 (with variables):
<?php

// settings to be set on install of the app
define("MY_BASE_CLASS","base_class");
define("MY_BASE_CLASSFILE","base_class.php");
$my_base_class_var = MY_BASE_CLASS;

// require the class file
require_once(MY_BASE_CLASSFILE);

class my_child_class extends $my_base_class_var {
    // yada yada
}
?>

Also, just to be clear:

base_class.php
<?php

class base_class {
    function base_class() {
        echo "it works";
        return true;
    }
}
?>


-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to