1

I have some problems with my class Model and other classes so I made this simple example to explain my problem :

class person{

  public static $a = "welcome";

  public function __construct(){
                               }

  public static function getobject()
  {
      $v = new person();
      return $v;
  }

}

class student extends person{

  public static $b = "World";

}

$st = student:getobject();//this will return person object but I want student object

echo $st->$b; // There is an error here because the object is not student

So I want to know what to write instead $v = new person(); to get the object of the last inherited class.

1 Answer 1

5

Use the late static binding's static keyword.

public static function getobject()
{
    $v = new static();
    return $v;
}

So, with student::getobject() you get an instance of student.

To retrieve the static (but why?) $b propriety, you can do $st::$b, or simply student::$b.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.