2009-06-30 9 views
0

は、私はPHPでの初心者です、私はオブジェクト内のすべてのデータを一度初期化し、どのように私はその問題を解決することができ、後で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

申し訳ありませんが、あなたが何をやろうとしているのか理解できていません...「$ this-> dbconn.executeQuery」は正しいPHP構文ではありません。 –

+0

$ this-> dbconnオブジェクトとexecuteQuery関数は、データベースへのクエリの接続と実行を支援します。それらに問題はありません。 Person :: Saveを使用しようとする度に問題が発生します。実際に私はそれを呼び出すたびにPerson :: Saveにパラメータを渡したくない。回答ありがとうございます。 –

答えて

0

serializeを使用して、目的の場所にオブジェクトを保存することができます。このオブジェクトの接続が永続的でないため、オブジェクトを直列化解除した後にdb接続を使用しようとすると、この場合は特に問題が発生します。一方で

がない場合は、PHPが文句を言わないあなたがシリアライズさ

1

2つのことを持っていたクラスを知っているので、あなたがエラーを取得するオブジェクトをアンシリアライズしようとすると、必ずクラス定義をロードしていることを忘れないでください。私は間違ってデータを渡していると思います。

<?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); 
?> 

私にとって、これは必要な情報を表示します。

+0

ありがとう、私はこれを試してみるつもりです、それは働くかもしれない何かのように見えます。問題は私のオブジェクトを構築する方法かもしれません。私は初期化のためにPHP4の方法を使用しました。データの初期化には問題はありません。応答に感謝します。 –

+0

問題はありません。これはテストサーバーにアップロードして、期待される応答を返すときにうまくいくはずです。 LMKが役立ちます。 – EvilChookie

+0

それは私は=これを試してみた動作: クラステスター{\t \t \t \t関数__construct($データ){ \t \t \tの$ this - >データ=配列(); \t \t \t $ this-> data ['name'] = $ data ['name']; \t \t \t $ this-> data ['age'] = $ data ['age']; \t \t \t \t \t \t \t \t} \t \t \t \t(){ \t \t \tエコー保存機能は '
と呼ばれます'。 \t \t \t print_r($ this); \t \t \t \t \t} \t \t \t} \t \t \t \t \t \t $私=新しいテスター(配列( "名" => "パスカルManiraho"、 "年齢" => 2000)) ; \t \t $ me-> save(); と私は再び助けを おかげで([データ] =>配列([名] =>パスカルManiraho [年齢] => 2000)) テスターオブジェクトと呼ばれました。 –

関連する問題