ホームページ  >  記事  >  バックエンド開発  >  文字列クラス名に基づいてオブジェクトを動的に生成するphpの分析例

文字列クラス名に基づいてオブジェクトを動的に生成するphpの分析例

黄舟
黄舟オリジナル
2017-08-15 14:36:194897ブラウズ

前回のレッスンPHP セーフ文字列の開発アイデアとコード共有では、PHP セーフ文字列の開発と使用について紹介しました。今日は、頻繁に使用される PHP 文字列の動的に生成されるオブジェクトについて引き続き紹介します。他の場所からクラスの名前を取得し、そのクラスのオブジェクトを生成することです。その場合、以前に使用されていた構文 ($obj = new $classname();) は間違いなく機能しません。今日は実装方法を紹介します~


まず、文字列クラス名に基づいてオブジェクトを動的に生成するために、このレッスンで使用する必要がある PHP クラス ライブラリをダウンロードします: http:/ /www.php.cn/xiazai/leiku/606


ダウンロードが完了したら、php クラス ライブラリ ファイルを見つけてローカル ディレクトリに抽出し、新しいファイルを作成します~

新しいphpファイル内でこのクラスを呼び出してインスタンス化します:

<?php
include_once "stringtext.php"; //引入类库文件
$className = &#39;Test&#39;;          
$obj = call_user_func(array($className, &#39;create&#39;));

var_dump($obj);
?>

このような構文を直接使用することは間違いなく機能しません:

$classname=&#39;Test&#39;;
$obj = new $classname();

オブジェクトのインスタンスを生成するターゲットクラスの静的メソッドを定義できます。次に、 call_user_func または call_user_func_array を通じてメソッドを呼び出します。もちろん、ファクトリ クラスなどのメソッドを通じて実装することもできます。

実行結果は次のようになります:

文字列クラス名に基づいてオブジェクトを動的に生成するphpの分析例

以上が文字列クラス名に基づいてオブジェクトを動的に生成するphpの分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。