首页 文章

表单输入到类属性

提问于
浏览
0

我正在尝试学习OO PHP并且我正在开发一个内容管理器项目,我想从一个html表单开始构建一个对象 .

例如,如果我有一个包含十个文本框(或其他类型的输入)的表单,我以POST模式发送表单,然后我想从POST数据开始构造我的对象 .

我必须将它们作为构造函数的参数传递,还是作为数组传递?怎么样?

举个例子:

我的小形式:姓名,姓氏,描述(但可能有十多个输入)

我的$ _POST数组:('name'=>'Mario','surname'=>'Rossi','description'=>'这里只是一个描述 . ')

我的课:

class Person {
    private $name;
    private $surname;
    private $description;

    public function __contruct(/*arguments or array here*/) {
    }
}

3 回答

  • 0

    一个干净而简单的解决方案是使用 json_decodejson_encode 函数 .

    http://php.net/json_decode

    $object = json_decode(json_encode($_POST['formdata']), FALSE);
    

    json_decode 将您的formdata转换为序列化对象, json_encode (false)的第二个参数可防止数据转换回 array .

  • 0

    不要在函数中直接使用 $_POST 而是将其作为参数发送给函数

    来自CLASS对象的函数调用:

    $args = array(
       'val1' => $_POST['val1'],
       'val2' => $_POST['val2'],
       'val3' => $_POST['val3']
    );
    $obj->funct($args);
    

    CLASS中的函数定义:

    public function funct ($param = array()) {
       print_r( $param );
    }
    
  • 0

    如果您的表单的数据超出一个 Person ,那么一个 Person 不足以代表您的表单!

    有一个类 PersonForm (或者它可能是什么名字),并传入 $_POST 数组作为参数 .

    然后 PersonForm 可以使用数组中的一些数据创建(通过 new 或使用 PersonFactory 类) Person 对象 .

相关问题