2014-03-05 112 views
0

我正在使用通用的UCP,並試圖在會話中存儲用戶配置文件對象。問題在於,我無法從中獲取任何數據。會話+對象

幾個片段,

user.php的

public $data, $logs; 
public $user_name; 

function User($user_name) { 

    this->user_name=$user_name; 
    this->Fetch(); //CAN_USE_FETCH_FOR_UPDATES 
} 
function Fetch() { 

    this->data=*; //SQL_DATA 
    this->logs=*; //SQL_DATA 
} 

的functions.php

function create_user($user_name) { 

    require_once('./struct/user.php'); 
    $user = new User($user_name); 
    $_SESSION['user'] = $user; 
} 

main.php

$user = $_SESSION['user']; 
echo($user->user_name); //NOT_WORKING 
echo($user->data['username']); //NOT_WORKING 

我試着在會話變量上使用print_r/var_dump,並打印整個對象。無論出於何種原因,我都無法從中獲取任何數據。

的print_r($用戶)

(
[__PHP_Incomplete_Class_Name] => User 
[data] => Array 
(
[id] => 1 
[username] => Veritas 
... 
+0

echo($ user-> data ['username']); // NOT_WORKING可能可能是變量的名稱是'user_name'? – 2014-03-05 21:17:47

+0

'data'是一個SQL行數組,如print_r(...)結果所示。我無法使用$ user作爲指針從類中的任何內容中檢索任何數據。 – user1117742456

+0

爲什麼你不想在將對象保存到會話之前序列化一個對象。 http://www.php.net/manual/en/oop4.serialization.php – Oyeme

回答

1

從會話檢索的數據是不是你User類的對象。它是一個通用對象,屬性__PHP_Incomplete_Class_Name表明它應該是類User的實例,但在創建對象時,PHP運行時不知道類是什麼User。嘗試加載User之前您開始會話。

+0

啊,謝謝!創建了一個解決方法,我的邏輯是有缺陷的。 – user1117742456