我正在尝试学习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*/) {
}
}
答案 0 :(得分:0)
简洁明了的解决方案是使用json_decode
和json_encode
函数。
$object = json_decode(json_encode($_POST['formdata']), FALSE);
json_decode
将您的formdata转换为序列化对象,而json_encode
的第二个参数(false)会阻止数据转换回array
。
答案 1 :(得分: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 );
}
答案 2 :(得分:0)
如果您的表单的数据超过一个Person
,那么一个Person
不足以代表您的表单!
有一个类PersonForm
(或者它可能是什么名称),并传入$_POST
数组作为参数。
PersonForm
然后可以使用数组中的一些数据创建(new
或使用PersonFactory
类)Person
对象。