2011-06-01 35 views
2

我有一個2維數組,就像那樣;將具有屬性的二維數組轉換爲另一個頁面

$results[$i][$j]->title; 
$results[$i][$j]->snippet; 
$results[$i][$j]->link; 

它充滿了價值。我必須將這個變量的值用於不同的頁面。 我嘗試與會話,但它會給出錯誤。

我該如何解決這個問題?

感謝您的幫助。

+1

你得到了什麼樣的錯誤? – Yeroon 2011-06-01 13:51:06

+0

你試過了什麼? – luca 2011-06-01 13:51:07

+1

如果我們不知道什麼是錯的,我們如何告訴你如何解決它? – 2011-06-01 13:51:38

回答

1

如果試圖序列化會話中的對象(如先前建議),那麼請記住成員函數__sleep和__wakeup將自動被調用。此外,您需要確保對象類的構造函數在後續頁面上可用。 (這是一個很常見的牆試圖通過可見$ _SESSION對象時,人們跑擊中。)

http://php.net/function.serialize

參見:

http://php.net/language.oop5.serialization

假如你考慮過只提取對象屬性您需要並將它們作爲標量值存儲在數組中?這很容易通過$ _SESSION存儲,並且不需要額外考慮。

3

第一頁:

session_start(); 
$_SESSION['fancy array'] = array("foo"=>array("b","a","r")); 

第二頁:

session_start(); 
print_r($_SESSION['fancy array']); 

工作對我來說:]

+0

只需注意,始終保持session_start();在你的php文件的頂部,在header()命令之前。 – 2011-06-01 14:06:19

+1

你可以在header()調用之後放置session_start()。標題不被視爲「輸出」。 session_start()只是一個簡單的包裝,它解釋了'反序列化/加載會話文件setcookie()',而setcookie本身使用header()調用。 – 2011-06-01 14:22:33

+0

@Marc:啊......整潔 - 我每天都在學東西:P – 2011-06-01 14:31:01

1

第一頁上,$results VAR的聲明,任何種類的輸出之前後。 (以前<html>

session_start(); 
$_SESSION['results'] = $results; 

在第2頁:

session_start(); 
$results = $_SESSION['results']; 
+0

呵呵,給你一個+1,因爲你回答的時間和我差不多(差10秒),答案也差不多:D – 2011-06-01 14:07:40