Jump to content

Recommended Posts

I have classes "dogs", "cats", and "mice", and each extends class "animals".

 

I have a table with primary integer key "id" (1, 2, 3) and unique column "animal_type" ("dogs", "cats", and "mice").

 

Given id of 2, how can I create a cats object without first querying the database to get the animal type?

PHP isn't clairvoyant.

 

Didn't know if I could/should create an object $animal=new animal(2) use the constructor to query the DB and return the object based on the appropriate class.  Sounds a little recursive, so I expect not, but thought there might be something similar which was acceptable.

Edited by NotionCommotion

A constructor cannot return an arbitrary object. A new animal is in fact a new animal, not a new dog or cat.

 

Mapping rows of the same table to different classes sounds like a strange idea to begin with, but that aside, you could of course use something like

$animal = Animal::load(2);    // returns an instance of some subclass of Animal
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.