日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

java类似php魔术方法_PHP与类有关的几个魔术方法

發(fā)布時(shí)間:2023/12/10 php 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java类似php魔术方法_PHP与类有关的几个魔术方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

與類(lèi)有關(guān)的其他魔術(shù)方法

序列化與反序列化技術(shù)

含義:

序列化:

就是將一個(gè)變量所代表的“內(nèi)存”數(shù)據(jù),轉(zhuǎn)換為“字符串”形式并持久保存在硬盤(pán)上的一種做法。

反序列化:

就是將序列化之后保存在硬盤(pán)上的“字符串?dāng)?shù)據(jù)”,恢復(fù)為其原來(lái)的內(nèi)存形式的變量數(shù)據(jù)的一種做法。

序列化的做法:

$v1 = ?123; //這是一個(gè)變量,代表任意的內(nèi)存數(shù)據(jù)

$s1 = ?serialize( $v1 ); //將任何類(lèi)型的變量數(shù)據(jù),轉(zhuǎn)換為“字符串”

file_put_contents( ‘要保存的目標(biāo)文本文件’, $s1); //將該字符串,保存到一個(gè)文件里(就是硬盤(pán)數(shù)據(jù))

反序列化的做法:

$s1 = file_get_contents( ‘保存序列化數(shù)據(jù)的目標(biāo)文本文件’); //從一個(gè)文件里讀出其中的所有字符

$v1 = ?unserialize( $s1 ); //將該字符串?dāng)?shù)據(jù),反序列化轉(zhuǎn)換為變量(數(shù)據(jù))

舉例:

先進(jìn)行基本數(shù)據(jù)的序列化:

再來(lái)對(duì)他們進(jìn)行反序列化:

__sleep():用于對(duì)象的序列化:

1,對(duì)一個(gè)對(duì)象進(jìn)行序列化,只能將其屬性數(shù)據(jù)“保存起來(lái)”,而方法被忽略(方法不是數(shù)據(jù))

2,對(duì)象的序列化的時(shí)候,會(huì)自動(dòng)調(diào)用該對(duì)象所屬類(lèi)的這個(gè)魔術(shù)方法:__sleep()(前提是有該方法)。

且,此時(shí),該方法必須返回一個(gè)數(shù)組,數(shù)組中是“計(jì)劃”要進(jìn)行序列化的屬性名;

舉例:

類(lèi)文件內(nèi)容如下:

__wakeup:用于對(duì)象的反序列化:

1,對(duì)一個(gè)對(duì)象進(jìn)行反序列化,其實(shí)是恢復(fù)其原來(lái)保存起來(lái)的屬性數(shù)據(jù),而且,此時(shí)必然需要依賴(lài)該對(duì)象原本的所屬類(lèi);

2,對(duì)象在反序列化的時(shí)候,會(huì)自動(dòng)調(diào)用該對(duì)象所屬類(lèi)的這個(gè)魔術(shù)方法:__wakeup()

舉例:

下面演示可選屬性的序列化(通過(guò)__sleep):

然后,對(duì)其對(duì)象進(jìn)行序列,并顯示該對(duì)象的數(shù)據(jù):

然后,在另一個(gè)頁(yè)面中,對(duì)其進(jìn)行反序列化:

__tostring()魔術(shù)方法——比較常用!

含義:

將一個(gè)對(duì)象“當(dāng)做”一個(gè)字符串來(lái)使用的時(shí)候,會(huì)自動(dòng)調(diào)用該方法,并且在該方法中,可以返回一定的字符串,以表明該對(duì)象轉(zhuǎn)換為字符串之后的結(jié)果。

注意:

如果沒(méi)有定義該方法,則對(duì)象無(wú)法當(dāng)做字符串來(lái)使用!!!

__invoke()魔術(shù)方法:

將對(duì)象當(dāng)作函數(shù)來(lái)使用的時(shí)候,會(huì)自動(dòng)調(diào)用該方法。通常不推薦這么做。

class ?A{

function ?__invoke(){

echo “
我是一個(gè)對(duì)象呀,你別當(dāng)我是一個(gè)函數(shù)來(lái)隨便調(diào)用!”;

}

}

$obj1 = new A();

$obj1(); //此時(shí)就會(huì)調(diào)用類(lèi)中的方法:__invoke()

總結(jié)

以上是生活随笔為你收集整理的java类似php魔术方法_PHP与类有关的几个魔术方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。