5
我想從另一個具有相同名稱空間的類調用名稱空間類的靜態方法。但其他類的名稱包含在一個變量:帶有可變類名稱和名稱空間的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)
{
//....
}
}
我喜歡的類型變量包含這裏Book
有效的類名。這個類位於同一個文件夾中,並使用相同的名稱空間。 此代碼返回錯誤Class 'Book' not found
。 我嘗試過使用反斜槓或call_user_func
函數的幾個變體(從我發現的SO問題),但沒有任何工作。 任何人都知道什麼是錯的?
太棒了,工作!謝啦 ! – 3rgo