【问题标题】:Instantiate a class based on the data coming from a form根据来自表单的数据实例化一个类
【发布时间】:2014-03-20 20:41:03
【问题描述】:

当我的 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

【问题讨论】:

  • 你能解释一下这个问题吗?这不清楚:“类 UploadHandler 应该实例化,直到我将指定的输入字段数据发送到我的 php 脚本。”
  • 编辑信息

标签: php jquery class oop


【解决方案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();
    }
}
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2021-09-10
    • 1970-01-01
    • 2020-01-13
    • 2011-09-23
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多