[英]Form inputs to class properties
我正在尝试学习OO PHP,并且正在从事内容管理器项目,我想从html表单开始构造一个对象。
例如,如果我有一个包含十个文本框的表单(或其他类型的输入),则以POST模式发送该表单,那么我想从POST数据开始构建对象。
我是否必须将它们作为构造函数的参数或数组传递? 怎么样?
只是一个例子:
我的小表格:名称,姓氏,描述(但可能有十多个输入)
我的$ _POST数组:(“名称” =>“马里奥”,“姓氏” =>“罗西”,“描述” =>“仅在此处进行描述。”)
我的课:
class Person {
private $name;
private $surname;
private $description;
public function __contruct(/*arguments or array here*/) {
}
}
一个干净而简单的解决方案是使用json_decode
和json_encode
函数。
$object = json_decode(json_encode($_POST['formdata']), FALSE);
json_decode
将您的json_decode
转换为序列化的对象,而json_encode
的第二个参数(false)可防止将数据转换回array
。
不要在函数中直接使用$_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 );
}
如果您的表单中的数据超过一个Person
,那么一个Person
不足以代表您的表单!
有一个PersonForm
类(或它的任何名字),并传入$_POST
数组作为参数。
然后, PersonForm
可以使用数组中的某些数据(通过new
或使用PersonFactory
类)创建Person
对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.