我正在尝试学习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 回答
一个干净而简单的解决方案是使用
json_decode
和json_encode
函数 .http://php.net/json_decode
json_decode
将您的formdata转换为序列化对象,json_encode
(false)的第二个参数可防止数据转换回array
.不要在函数中直接使用
$_POST
而是将其作为参数发送给函数来自CLASS对象的函数调用:
CLASS中的函数定义:
如果您的表单的数据超出一个
Person
,那么一个Person
不足以代表您的表单!有一个类
PersonForm
(或者它可能是什么名字),并传入$_POST
数组作为参数 .然后
PersonForm
可以使用数组中的一些数据创建(通过new
或使用PersonFactory
类)Person
对象 .