Вызов статического метода PHP с именем класса переменных и пространствами имен

Я пытаюсь вызвать статический метод для класса с именами из другого класса с тем же пространством имен. Но другое имя класса содержится в переменной:

<?php namespace MyApp\Api; use \Eloquent; class Product extends Eloquent { public static function find($id) { //.... } public static function details($id) { $product = self::find($id); if($product) { $type = $product->type; // 'Book' $product = $type::find($product->id); return $product; } } } 

Вот класс Book :

 <?php namespace MyApp\Api; use \Eloquent; class Book extends Eloquent { public static function find($id) { //.... } } 

Моя переменная типа содержит допустимое имя класса здесь. Этот класс находится в одной папке и использует одно и то же пространство имен. Этот код возвращает ошибку Class 'Book' not found . Я попробовал несколько вариантов (из вопросов, которые я нашел), используя обратную косую черту или функцию call_user_func , но ничего не call_user_func . Кто-нибудь знает, что случилось?

Solutions Collecting From Web of "Вызов статического метода PHP с именем класса переменных и пространствами имен"