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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

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

發布時間:2023/12/10 php 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java类似php魔术方法_PHP与类有关的几个魔术方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

與類有關的其他魔術方法

序列化與反序列化技術

含義:

序列化:

就是將一個變量所代表的“內存”數據,轉換為“字符串”形式并持久保存在硬盤上的一種做法。

反序列化:

就是將序列化之后保存在硬盤上的“字符串數據”,恢復為其原來的內存形式的變量數據的一種做法。

序列化的做法:

$v1 = ?123; //這是一個變量,代表任意的內存數據

$s1 = ?serialize( $v1 ); //將任何類型的變量數據,轉換為“字符串”

file_put_contents( ‘要保存的目標文本文件’, $s1); //將該字符串,保存到一個文件里(就是硬盤數據)

反序列化的做法:

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

$v1 = ?unserialize( $s1 ); //將該字符串數據,反序列化轉換為變量(數據)

舉例:

先進行基本數據的序列化:

再來對他們進行反序列化:

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

1,對一個對象進行序列化,只能將其屬性數據“保存起來”,而方法被忽略(方法不是數據)

2,對象的序列化的時候,會自動調用該對象所屬類的這個魔術方法:__sleep()(前提是有該方法)。

且,此時,該方法必須返回一個數組,數組中是“計劃”要進行序列化的屬性名;

舉例:

類文件內容如下:

__wakeup:用于對象的反序列化:

1,對一個對象進行反序列化,其實是恢復其原來保存起來的屬性數據,而且,此時必然需要依賴該對象原本的所屬類;

2,對象在反序列化的時候,會自動調用該對象所屬類的這個魔術方法:__wakeup()

舉例:

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

然后,對其對象進行序列,并顯示該對象的數據:

然后,在另一個頁面中,對其進行反序列化:

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

含義:

將一個對象“當做”一個字符串來使用的時候,會自動調用該方法,并且在該方法中,可以返回一定的字符串,以表明該對象轉換為字符串之后的結果。

注意:

如果沒有定義該方法,則對象無法當做字符串來使用!!!

__invoke()魔術方法:

將對象當作函數來使用的時候,會自動調用該方法。通常不推薦這么做。

class ?A{

function ?__invoke(){

echo “
我是一個對象呀,你別當我是一個函數來隨便調用!”;

}

}

$obj1 = new A();

$obj1(); //此時就會調用類中的方法:__invoke()

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。