/ /フォームから来るデータに基づいてクラスをインスタンス化する - php、jquery、class、oop

フォームから来るデータに基づいてクラスをインスタンス化する - php、jquery、class、oop

私のphpスクリプトがname = "files []"の入力フィールドからデータを取得するとき、私は特定のクラスをインスタンス化したいです。

たとえば、誰かが次のいずれかを使ってファイルをアップロードします。私のhtmlフォームの入力フィールド、jqueryはjsonとしてphpにデータを送り、phpでは私は異なるクラスを作成し、それぞれのクラスは入力フィールドのname属性の値に基づいてインスタンス化されます。

これは私がやろうとしていることです

error_reporting(E_ALL | E_STRICT);
require("UploadHandler.php");
if (!empty($_REQUEST) && empty($_REQUEST["files[]"]) && empty($_REQUEST["files2[]"])) {
$upload_handler1 = new UploadHandler();
}
else {
if ($_REQUEST["files"]) {
$custom_upload_handlerone = new customUploadHandlertwo();
}
if ($_REQUEST["files2"]) {
$custom_upload_handlertwo = new customUploadHandlerone();
}
}

誰かがその指定された入力フィールドを使わない場合データを送信するには、単純なクラスUploadHandlerがインスタンス化し、入力フィールドを送信したら、「name = "file2 []"属性を付けて宣言します。スクリプトはUploadHandlerインスタンス化を停止し、クラスcustomUploadHandlertwoをインスタンス化します。

回答:

回答№1は1

フィールドのname属性とphpクラスとの間に関係があると思います。もしそうなら、そのようなクラスのインスタンス化は以下のように単純です。

...
else {
if ($_REQUEST["files"]) {
$className = $_REQUEST["files"];
$custom_upload_handlerone = new $className();
}
if ($_REQUEST["files2"]) {
$className = $_REQUEST["files2"];
$custom_upload_handlertwo = new $className();
}
}
...