作者foxzgerald (Algorithms)
看板PHP
標題Re: [請益]物件的傳遞??
時間Sun Nov 23 23:44:02 2008
我用以下三個檔案(class.db.connector.php, 1.php, 2.php)測試..
不知道結構是不是跟你遇到的問題類似?
然後我在 1.php 用 $db->save('字串') 塞了 n 個進去.. 2.php unserialize之後
$store dump 出來的內容是一樣的 @@
PS: 我在 xp 上用 wamp 跑(php5.2.6)
==
<?php // class.db.connector.php
class DBConnector
{
var $db;
var $store = array();
function __construct() {
$this->conn();
}
function conn() {
$this->db =& new mysqli("localhost", "root", "", "test");
}
function query() {
$this->result =
$this->db->query('SELECT * FROM test')->fetch_object();
}
function __sleep() {
return array_keys(get_object_vars($this));
}
function __wakeup() {
$this->conn();
}
function save($input) {
array_push($this->store, $input);
}
}
// -- eof : class.dbconnector.php
<?php // 1.php
session_start();
include 'class.dbconnector.php';
$db =& new DBConnector();
$db->save('a');
$db->save('b');
$db->save('c');
$db->save('d');
var_dump($db);
$_SESSION['obj'] = serialize($db);
// -- eof : 1.php
<?php // 2.php
session_start();
include 'class.dbconnector.php';
$db = unserialize($_SESSION['obj']);
$db->query();
var_dump($db);
// -- eof : 2.php
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.175.168.223
※ 編輯: foxzgerald 來自: 218.175.168.223 (11/23 23:44)
→ showsky :我是跑在freeBSD 上... 11/23 23:45
→ foxzgerald :那你可以試一下上面的 code 嗎? win上跑似乎正常@@ 11/23 23:49
後來發現些錯誤.. 所以修正一下. __sleep() 和 __wakeup() 確實不能省略.
※ 編輯: foxzgerald 來自: 218.175.168.223 (11/24 00:56)