0 レビュー
1 回答
名前空間-変数を使用して型をエイリアシングするphp
いくつかの名前空間があり、それらには独自の例外ハンドラーがあります。 また、例外ハンドラーの1つを参照する必要がある一般的なスクリプトもあります。必要な名前空間はグローバル文字列で保持されます。
namespace myNamespace1;
class NewException extends \Exception
{
....
}
-
namespace myNamespace2;
class NewException extends \Exception
{
....
}
$ ref変数は、myNamespace1またはmyNamespace2を含む文字列です。このグローバル変数を使用して例外の1つにエイリアスを付けたい
global $ref;
$alias = $ref . "\NewException";
define("ex", $alias);
use ex as EX;
EXをスローしようとするまで、これはエラーになりません。その後、クラスをロードできなくなります。
これを行うことは可能ですか?
わからない
0
レビュー
答え :
解決策:
use ex as EX;
ex はクラス名として扱われるため、使用できませんこのように定数または変数。クラス名のエイリアスを作成する場合は、
class_alias()
:
global $ref;
class_alias($ref . '\NewException', 'my\Exception');
// ...
throw new \my\Exception();
my\Exception
を定義するclass_alias()呼び出しは1つしか持てないことに注意してください。このエイリアスは、プロジェクト。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。