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
機能を使用していくつかのバリエーション(私が見つけたその質問から)を試しましたが、何も機能しませんでした。 何が間違っているのは誰でも知っていますか?
恐ろしいですね!ありがとう ! – 3rgo