本文主要給大家介紹php對象的序列化,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下php對象的序列化吧。

所有php里面的值都可以使用函數(shù)serialize()來返回一個包含字節(jié)流的字符串來表示。unserialize()函數(shù)能夠重新把字符串變回php原來的值。 序列化一個對象將會保存對象的所有變量,但是不會保存對象的方法,只會保存類的名字。
為了能夠unserialize()一個對象,這個對象的類必須已經(jīng)定義過。如果序列化類A的一個對象,將會返回一個跟類A相關(guān),而且包含了對象所有變量值的字符串。 如果要想在另外一個文件中解序列化一個對象,這個對象的類必須在解序列化之前定義,可以通過包含一個定義該類的文件或使用函數(shù)spl_autoload_register()來實(shí)現(xiàn)。
<?php
// classa.inc:
class A {
public $one = 1;
public function show_one() {
echo $this->one;
}
}
// page1.php:
include("classa.inc");
$a = new A;
$s = serialize($a);
// 把變量$s保存起來以便文件page2.php能夠讀到
file_put_contents('store', $s);
// page2.php:
// 要正確了解序列化,必須包含下面一個文件
include("classa.inc");
$s = file_get_contents('store');
$a = unserialize($s);
// 現(xiàn)在可以使用對象$a里面的函數(shù) show_one()
$a->show_one();
?>
當(dāng)一個應(yīng)用程序使用函數(shù)session_register()來保存對象到會話中時,在每個頁面結(jié)束的時候這些對象都會自動序列化,而在每個頁面開始的時候又自動解序列化。 所以一旦對象被保存在會話中,整個應(yīng)用程序的頁面都能使用這些對象。但是,session_register()在php5.4.0之后被移除了。
在應(yīng)用程序中序列化對象以便在之后使用,強(qiáng)烈推薦在整個應(yīng)用程序都包含對象的類的定義。 不然有可能出現(xiàn)在解序列化對象的時候,沒有找到該對象的類的定義,從而把沒有方法的類__PHP_Incomplete_Class_Name作為該對象的類,導(dǎo)致返回一個沒有用的對象。
所以在上面的例子中,當(dāng)運(yùn)行session_register("a"),把變量放在會話里之后,需要在每個頁面都包含文件classa.inc,而不是只有文件和。
看完以上關(guān)于php對象的序列化,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前標(biāo)題:php對象的序列化-創(chuàng)新互聯(lián)
本文路徑:http://chinadenli.net/article26/dghjjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、響應(yīng)式網(wǎng)站、微信小程序、營銷型網(wǎng)站建設(shè)、虛擬主機(jī)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容