php 序列化方法,PHP序列化操作方法分析

本文實例講述了PHP序列化操作方法。分享給大家供大家參考,具體如下:

序列化就是將變量數據轉換為字符串(跟類型轉換機制不同),一般應用于存儲數據(文件),然后在別的情形下恢復(反序列化)

序列化:

$val = serialize($var);

file_put_contents('./*.txt',$val);

反序列化:

$val = file_get_contents('./*.txt');

$var = unserialize($val);

當一個對象進行序列化操作時,會自動調用類中的__sleep();

當反序列化一個對象的時候,會自動調用對應類的__wakeup(),反序列操作中,必須具備了對應的類的聲明。

__sleep()中可以進行一些數據(資源)的清理關閉操作,并返回一個數組,該數組存儲一些需要進行序列化的對象的屬性,即可以挑選屬性進行序列化。

class bee{

public $a;

protected $b;

private $c;

public function __sleep(){

return array('a','b');

}

}

__wakeup()在進行反序列話操作的時候進行某些有用的‘數據恢復工作',比如連接數據庫

public function __wakeup(){

$this->func();

}

__tostring()

當把一個對象當作一個字符串來看待處理的時候,會自動調用該方法。通過該方法可以返回合適的字符串,如果沒該定義該方法就會出錯。

class bee{

public function __tostring(){

echo 'string';

}

}

$obj = new bee();

//對象不能直接當字符串使用

echo $obj;

__invoke()

當對象當作一個方法使用的時候,會自動調用該方法

class bee{

public function __invoke(){

echo 'invoke';

}

}

$obj = new bee();

//對象不能直接當字符串使用

echo $obj();

希望本文所述對大家PHP程序設計有所幫助。 ad51e517755f8fd6a7ec83ced4ecfaf3.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454759.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454759.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454759.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis入門到精通-Redis數據類型

2019獨角獸企業重金招聘Python工程師標準>>> 登錄Redis數據庫 [rootlocalhost bin]# /usr/local/redis/bin/redis-cli String類型 ? String 數據結構是簡單的key-value類型,value其實不僅是String,也可以是數字,是包含很多種類型…

裝機之 BIOS、EFI與UEFI詳解

在我們的電腦中,都有一塊黑色的小芯片。但是請千萬不要小看它,如果它損壞或者數據錯誤亂套的話,恭喜,如果不會“救回”這個小芯片,那么這臺電腦可以掛閑魚賣零件了…… 這個小芯片是什么呢?對,…

c/c++筆試題

微軟亞洲技術中心的面試題!!! 1.進程和線程的差別。 線程是指進程內的一個執行單元,也是進程內的可調度實體. 與進程的區別: (1)調度:線程作為調度和分配的基本單位,進程作為擁有資源的基本單位 (2)并發性&…

php 模板 php + mysql + myodbc,連接MySQL數據庫在ASP中,就用MyODBC

我們大家都知道ASP與MySQL連接現在應用最為廣泛的兩種辦法是,一是使用組件,經常使用的是MySQL(和PHP搭配之最佳組合)X,可惜價格很貴。另一個就是用MyODBC來連接MySQL數據庫,下面我們就來看看第二種方式。 試驗的平臺: …

Android Gradle和Gradle插件區別

2019獨角獸企業重金招聘Python工程師標準>>> 一、引言 1、什么是Gradle?什么是Gradle插件? build.gradle中依賴的classpath com.android.tools.build:gradle:2.1.2和gradle-wrapper.properties中的distributionUrlhttps\://services.gradle.org/distributions/gra…

裝機之MBR和GPT

MBR分區 MBR的意思是“主引導記錄”,是IBM公司早年間提出的。它是存在于磁盤驅動器開始部分的一個特殊的啟動扇區。這個扇區包含了已安裝的操作系統系統信息,并用一小段代碼來啟動系統。如果你安裝了Windows,其啟動信息就放在這一段代碼中—…

Linux 文件打亂順序

cat in.txt | awk BEGIN{srand()}{print rand()"\t"$0} | sort -k1,1 -n | cut -f2- > out.txt sort -R in.txt > out.txt 后者要計算每行的hash,再排序,在文件內容比較多的情況下前者要比后者快得多 參考文獻: http://blog.…

php 計算 目錄大小,php計算整個目錄大小的方法

本文實例講述了php計算整個目錄大小的方法。分享給大家供大家參考。具體實現方法如下:/*** Calculate the full size of a directory** author Jonas John* version 0.2* link http://www.jonasjohn.de/snippets/php/dir-size.htm* param string $DirectoryPath Dir…

實驗報告3

中國人民公安大學 Chinese people’ public security university 網絡對抗技術 實驗報告 實驗三 密碼破解技術 學生姓名 陸圣宇 年級 2014 區隊 三 指導教師 高見 信息技術與網絡安全學院 2016年11月7日 實驗任務總綱 2016—2017 學年 第 一 學期 一、實驗目的 1&am…

裝機之windows10和ubuntu雙系統

制作系統U盤 下載Ubuntu16.04 我們首先去Ubuntu的官網下載一個Ubuntu16.04的iso鏡像文件。當然里面也有優麒麟,其實就是把Ubuntu16.04漢化了一下,個人推薦安裝Ubuntu16.04 體驗上可能好一些。 利用軟碟通制作 不會的可以查看此教程https://blog.csdn…

函數之內置函數1

什么是內置函數:別人已經定義好了的函數,我們只管拿來調用就好 locals:局部作用域中的變量 globals:全局作用域中的變量 這兩者在全局執行,結果一樣;在局部中locals表示函數內的名字,返回的是一…

matlab var std,Matlab var std cov 函數解析

在Matlab中使用var求樣本方差,使用std求標準差!首先來了解一下方差公式:p [-0.92 0.73 -0.47 0.74 0.29; -0.08 0.86 -0.67 -0.52 0.93]p -0.9200 0.7300 -0.4700 0.7400 0.2900-0.0800 0.8600 -0.6700 -0.5200 0.9300…

Java中什么是匿名對象,空參構造方法輸出創建了幾個匿名對象,屬性聲明成static...

package com.swift; //使用無參構造方法自動生成對象,序號不斷自增 public class Person {private static int count; //如果在定義類時,使用的是靜態的屬性,則得到的結果是不同的。count生命周期長,與類相同public int id;public…

裝機之制作系統U盤

工具:UltraISO(軟碟通),iso鏡像 在制作系統U盤的時候我們需要去下一個軟件——UltraISO(軟碟通),這個自己去百度搜索一下應該就能出來的。下載安裝完以后,我們打開軟碟通的界面打開…

訪問index.php跳轉,打開index.php后,跳轉到/user/login.html

jeff2009-11-03 20:54:47注釋后,產生這些錯誤:Notice: Undefined property: myRouter::$user in /data/zentaophp/app/pms/module/common/control.php on line 91Notice: Trying to get property of non-object in /data/zentaophp/app/pms/module/commo…

關于清空object對象里的屬性的兩種方法

最近碰到一個問題,就是要清空對象里的屬性,我想了兩個方法,做個結果的記錄,都是自己的想法,有不對的地方請指教 var obj{};  //對象里的屬性自己看著寫吧 第一種方法: objnull; 這種方法看上去很快速&…

Linux 狀態命令之系統調用和信號傳遞 strace

簡介 strace 命令是一個集診斷、調試、統計與一體的工具,我們可以使用 strace 分析應用中涉及的系統調用和信號傳遞的跟蹤結果,以達到解決問題或者是了解應用工作過程的目的。 strace 與專業的調試工具比如說 gdb 之類的是沒法相比的,因為它…

李飛飛:為什么計算機視覺對機器人如此重要?

根據Guide2Research的排名,IROS是計算機視覺領域排名第四的學術會議,前三名分別為CVPR、ICCV、ECCV。計算機視覺在機器人的發展史中起著非常重要的作用,與之相關的“感知”也正是歷年IROS大會上的重要內容,隨著機器人研究的發展和…

php 循環 顯示 圖片,thinkphp 循環顯示圖片問題!!!~~~~

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓class CatController extends Controller {public function cat(){$goodsModel D(Admin/goods);$goodslist $goodsModel->field(goods_id,goods_name,shop_price,goods_img,market_price)->where(cat_id)->select();$th…

python flask 基礎入門

1. Flask 中的Hello World! 在使用pycharm創建一個Flask項目后,將會默認創建一個flask的app,這里來講下每行代碼表示的意義,代碼入下 from flask import Flask    # 導入flask模塊 如果沒有這個模塊需要使用pip install flask 進行安裝…