我是PHP的新手,我问我是否可以为对象内的所有数据初始化一次并稍后使用
<?
class Person(){
private $data;//private or public
function Person($data){
$this->data['name'] = $data['name'];
....
}
function save(){
$this->dbconn.executeQuery('insert into ... values('$this->data['name']',...));
//some object to connect and execute query on a database.
}
}
?>
$me = new Person(array(['name']=>'my fname my lname',...));
$me->save();
//print_r($me) shows that $data has no initialized values
我该如何解决这个问题。如果您知道询问相同问题的链接,请将其复制并粘贴到此处。谢谢。
答案 0 :(得分:1)
两件事。我认为你错误地传递了数据,并且错误地设置了你的类:
<?php
class Person {
function __construct($data){
$this->data = array();
$this->data['name'] = $data['name'];
}
function save(){
// Do something here.
}
}
$info = array();
$info['name'] = "Joe Blogs";
$someone = new Person($info);
print_r($someone);
?>
对我来说,这会打印出应有的信息。
答案 1 :(得分:0)
您可以使用serialize然后将对象存储在所需位置。但在这种情况下,如果在反序列化对象后尝试使用db连接,则可能会遇到问题,因为该对象的连接不是持久的。
另一方面,记得总是加载类定义,如果不是当你尝试反序列化对象时会出现错误,因为php不会知道你序列化的类