2009/5/29 Shawn McKenzie <nospam@xxxxxxxxxxxxx> > Luke wrote: > > Right I've read the manual on this and all that so hopefully you find > people > > can help. > > I have an abstract class with three children. The abstract is ForumObject > > and the three children are Thread, Category and Post and each have their > own > > table so I wrote the following: > > abstract class ForumObject > > { > > static private $table; > > > > static function getObjectIds ($field, $value) > > { > > $query = "SELECT id FROM {self::$table} WHERE $field = '$value'"; > > $object_ids = mysql_fetch_array(); > > return $object_ids; > > } > > } > > > > class Category extends ForumObject > > { > > static private $table = "categories"; > > } > > That's just got the important bits for the sake of your eyes but > basically > > the problem I'm having is calling > > Category::getObjectIds ($whatever, $whatever2); > > Seems to think that it's referring to ForumObject::$table rather than > > Category::$table? > > I looked into it and there seems to be something you can do with > > get_called_class() but unfortunately I'm stuck with 5.2.9 at the moment > and > > that is new to 5.3. > > Any ideas? Perhaps there is a different way I could implement the classes > - > > I would rather not have getObjectIds repeated three times! > > Thanks in advance, > > I didn't test this, just a thought. You'd still have to implement > getObjectIds(), but it would be slim: > > abstract class ForumObject > { > static private $table; > > static function getObjectIds ($field, $value, $class) > { > $query = "SELECT id FROM {$class::$table} WHERE $field = '$value'"; > $object_ids = mysql_fetch_array(); > return $object_ids; > } > } > > class Category extends ForumObject > { > static private $table = 'categories'; > > static function getObjectIds ($field, $value) > { > parent::getObjectIds ($field, $value, __CLASS__) > } > } > > Or probably the same because you're defining $table anyway in the child > class: > > abstract class ForumObject > { > static private $table; > > static function getObjectIds ($field, $value, $table) > { > $query = "SELECT id FROM $table WHERE $field = '$value'"; > $object_ids = mysql_fetch_array(); > return $object_ids; > } > } > > class Category extends ForumObject > { > static private $table = 'categories'; > > static function getObjectIds ($field, $value) > { > parent::getObjectIds($field, $value, self::$table) > } > } > > -- > Thanks! > -Shawn > http://www.spidean.com > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > Ah that looks like the perfect solution! Trying now! Many thanks! -- Luke Slater http://dinosaur-os.com/ :O)