我需要清楚地標識一個對象並將其標識存儲在我的數據庫中。 之後我需要這個ID來恢復這個對象。對象的真實和穩定散列
我試過使用「spl_object_hash()」(http://php.net/manual/en/function.spl-object-hash.php),但是這個函數每次重新加載頁面時都會返回一個值。
爲了進行測試,這是物體穩定,保持不變,完全不變。永遠不要少「spl_object_hash()」一次又一次地返回不同的結果我會重新加載。
$foo = new stdClass();
print_r(spl_object_hash($foo));
- >另一個哈希每次我打一次刷新
我需要一種方法來創建依賴於完整的對象的哈希值。只要對象不存在,這個散列就不應該改變。
我不希望實現一個自己的方法(只要沒有其他可能解決我的問題)這一點,因爲我需要一個快速,簡單和統一的方式,以確定我的對象。
進一步我不想使用會話用於此目的。
所以我能做些什麼來解決這個問題?
感謝提前&友好的問候!
一個簡單的md5(serialize($ foo)); –
*「請注意,對象的內容(屬性)不被函數散列,僅僅是其內部句柄和處理程序表指針,這足以保證同時駐留在內存中的任何兩個對象將具有不同的散列。在沒有同時駐留在內存中的對象之間無法保證。「* - 在[documentation]中的第一條評論(http://www.php.net/manual/en/function.spl-object-hash.php#76220) 。推斷是這個函數不是爲了在會話之間爲一個對象產生相同的結果而設計的。 – Emissary
@ Jens-AndréKoch:哇,這完全是我需要的,它讓我感到很尷尬,我沒有按自己的方式來到這裏。萬分感謝! – serjoscha