Ask Your Question
4

Can you explain the concepts of PHP instanciation and late static binding context?

asked 2022-04-30 11:00:00 +0000

djk gravatar image

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2022-11-04 07:00:00 +0000

bukephalos gravatar image

Sure!

  • PHP instantiation refers to the process of creating an instance of a class, which is essentially an object that contains properties and methods defined in the class. To create an instance of a class, you use the new keyword followed by the name of the class, and any arguments that the class constructor requires.

For example:

class MyClass {
  public $myProperty;

  public function __construct($value) {
    $this->myProperty = $value;
  }
}

$obj = new MyClass("Hello");
echo $obj->myProperty; // Outputs "Hello"

In this example, we create an instance of MyClass by calling new MyClass("Hello"). This calls the class constructor, which sets the myProperty property to the value passed in. We can then access this property using $obj->myProperty.

  • Late static binding context is a way to reference the class that a method was called on, even if the method is inherited from a parent class. This is useful when you want to use the same method in multiple subclasses, but have it behave differently depending on the subclass.

For example:

class ParentClass {
  public static function myMethod() {
    echo static::class; // Outputs the name of the subclass
  }
}

class ChildClass extends ParentClass {}

$obj = new ChildClass();
$obj->myMethod(); // Outputs "ChildClass"

In this example, we declare a static method myMethod() in the ParentClass that outputs the name of the class it was called from using static::class. We then create a ChildClass that inherits from ParentClass, and call myMethod() on an instance of ChildClass. Because we're calling the method on an instance of ChildClass, static::class will resolve to the name of the subclass (ChildClass).

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss

Add Answer


Question Tools

Stats

Asked: 2022-04-30 11:00:00 +0000

Seen: 8 times

Last updated: Nov 04 '22