私はPHPでカスタムクラスを持っています。クラスをシリアライズしてテキストファイルに保存すると、別のPHPファイルで後でそれをシリアル化できません。私は、オブジェクトにクラスの関数を呼び出すしようとすると、私は両方でクラスを含んで行う文字列からクラスをシリアル化しないPHPが動作しない
...非オブジェクトの[functioname()]メンバ関数へ
コールを取得しますPHPファイル。
PHPファイル1:
$myobject = new myclass(); $temp = serialize($myobject); file_put_contents('serializetest.txt', $temp);
PHPファイル2:
$s = file_get_contents('serializetest.txt'); $newobject = unserialize($s);
シリアライズされたクラスが適切にアンシリアライズなぜいくつかの理由がありますか?私は、オブジェクトを作成し、使用している場合
更新
それは私が無関係な保存されたオブジェクトをアンシリアライズすることができます主な機能です。クラスは刑事事件を探します。 2つのオブジェクトが全く異なっていても、新しいオブジェクトを作成して使用すると、保存された過去のオブジェクトを突然解凍できます。つまり、以下のコードは動作しますが、コードの最初の3行を削除してもそれはできません。
$tempcase = new Expungement(); $tempcase->searchCase('4B02305986','Public',true,false); echo "Case Number 1: " . $tempcase->caseno; $s = file_get_contents('serializetest.txt'); echo "Serialized Data: " . $s; $newcase = unserialize($s); echo "Case Number 2: " . $newcase->caseno;
クラス定義はファイル2に存在しますか?ファイル2は 'myclass'が何であるかを知る必要があります。 – Devon
私は両方のページの上部にクラスファイルを含めます。 include_once 'myclass.php' – user3157910
あなたは '$ newobject'をダンプして何が含まれているかを確認しようとしましたか? – Devon