Is it possible to cast a base object to a derived class in PHP?

In PHP, it is not possible to directly cast a base object to a derived class. However, you can create a new instance of the derived class and manually copy the properties from the base object to the new instance. This process is known as object cloning. By using object cloning, you can essentially achieve a similar result to casting a base object to a derived class.

class BaseClass {
    public $property1;
    public $property2;
}

class DerivedClass extends BaseClass {
    public $property3;
}

$baseObj = new BaseClass();
$baseObj->property1 = 'Value 1';
$baseObj->property2 = 'Value 2';

$derivedObj = new DerivedClass();
$derivedObj->property3 = 'Value 3';

foreach ($baseObj as $key => $value) {
    $derivedObj->$key = $value;
}

var_dump($derivedObj);