ホームページ > バックエンド開発 > PHPチュートリアル > 文字列を使用して PHP クラスを動的にインスタンス化するにはどうすればよいですか?

文字列を使用して PHP クラスを動的にインスタンス化するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-04 04:23:09
オリジナル
173 人が閲覧しました

How Can I Instantiate PHP Classes Dynamically Using Strings?

PHP での文字列を使用した動的クラスのインスタンス化

PHP では、クラスを表す文字列を使用してクラスのインスタンスを作成できます。名前。これにより、複数のクラスを扱うときに長い switch ステートメントが必要なくなります。

次の例を考えてみましょう:

class ClassOne {}
class ClassTwo {}

$str = 'One';
ログイン後にコピー

switch ステートメントを使用する代わりに:

switch ($str) {
    case "One":
        $object = new ClassOne();
        break;
    case "Two":
        $object = new ClassTwo();
        break;
}
ログイン後にコピー

次のように文字列を使用してインスタンスを動的に作成できます:

$class = 'Class' . $str;
$object = new $class();
ログイン後にコピー

この構文完全なクラス名 (「ClassOne」など) を構築し、インスタンス化します。クラスが名前空間内にある場合は、完全修飾名を使用します:

$class = '\Foo\Bar\MyClass';
$instance = new $class();
ログイン後にコピー

PHP はこの機能を変数関数やメソッドにも拡張します:

$func = 'my_function';
$func(...$parameters); // Calls my_function() with parameters

$method = 'doStuff';
$object = new MyClass();
$object->$method(); // Calls Myclass->doStuff()
(new MyClass())->$method(); // Calls Myclass->doStuff() in one line
ログイン後にコピー

文字列を使用して変数を作成することもできます、これは悪い習慣とみなされ、配列の使用を優先して避けるべきです。

以上が文字列を使用して PHP クラスを動的にインスタンス化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート