Давайте рассмотрим этот код
class MyClass {
function __call($method, $arguments) {
// I want to convert the return response from stdClass to SomeClass here and return
}
}
Class UserClass extends Myclass
{
protected function test(): SomeClass
{
$object = new stdClass();
$object->id = 1;
$object->name = 'some';
return $object;
}
}
Я создаю объект и пытаюсь вызвать защищенную функцию публично
$userClass = new UserClass();
$userClass->test();
Он перейдет к методу __call, поскольку метод тестирования не является открытым
function __call($method, $arguments) {
// I want to convert the return response from stdClass to SomeClass here and return
}
Здесь вместо того, чтобы возвращать значение типа SomeClass , я возвращаю объект типа stdClass .Я хочу преобразовать этот объект в тип SomeClass перед возвратом и выдачей ошибки.
protected function test(): SomeClass
{
$object = new stdClass();
$object->id = 1;
$object->name = 'some';
return $object;
}
Возможно ли использовать метод отражения или что-то еще?Ваши предложения высоко ценятся.