日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

PHP獲取類私有屬性的3種方法

瀏覽:25日期:2022-09-09 08:33:14

今天在推上看到一條獲取PHP類私有屬性的推文,感覺很有意思:

PHP獲取類私有屬性的3種方法

順著推文聯想,還有其他方式嗎?經過自己的測試及網上答案,總結出三種方法:

1. 反射

反射可以獲取類的詳細信息,要獲取私有屬性的值,只需將對應屬性的ReflectionProperty實例設置為可訪問再取值即可。示例代碼如下:

namespace tlanyan;class Foo { private $bar = 'Foo bar!';}// 獲取反射類及反射屬性$class = new ReflectionClass(Foo::class);$property = $class->getProperty('bar');// 設置屬性可訪問$property->setAccessible(true);$foo = new Foo;// 獲取對象屬性值// 注意:只能通過 ReflectionProperty 實例的 getValue 方法訪問// 不能這樣直接訪問: $foo->bar;echo $property->getValue($foo), PHP_EOL:// 輸出: Foo bar!

本人之前寫過“PHP回顧之反射”一文,比較詳細的介紹了反射及用法,有興趣的閱讀參考。

2. 轉換成數組

這種方法用將對象強制轉換成數組,再通過鍵獲取其值。示例代碼如下:

class Foo { private $bar = 'Foo bar!';}$foo = new Foo;// 強制轉型$attrs = (array)$foo;// 拼接key,注意 '0' 不能改成單引號!$key = '0' . Foo::class . '0' . 'bar';echo $attrs[$key], PHP_EOL;// 輸出: Foo bar!

上述代碼中key的拼接方式比較詭異,key規則如下:

public屬性, key是 屬性名; protected屬性,key是 0*0屬性名; private屬性, key是 0類名0屬性名。

注意 0 是一個字符(不是兩個),對應的ASCII碼是數字0。編程時要用雙引號將其引起來。不能使用單引號,否則轉義失效,那就是兩個字符。如果你有C語言基礎,應該知道 0 就是字符串的結束符。這個符號直接輸出不會顯示,但可以通過strlen或者ord讓其現形:

foreach ($attrs as $key => $value) { echo 'key:$key', ', key length:', strlen($key), ', ascii: '; for ($i = 0; $i < strlen($key); ++ $i) { echo ord($key[$i]), ' '; } echo PHP_EOL;}// 輸出// key:Foobar, key length:8, ascii: 0 70 111 111 0 98 97 114// Foobar 有6個字符,加上兩個不顯示字符,所以長度是8

還需要注意拼接private屬性時類名應該是 “完全限定類名” ,建議通過Foo::class的方式獲取。

與強制轉換成數組類似的另一種方法是serialize,但是serialize比較慢,并且序列化后的字符串更難辨認結構和處理,不建議使用。

3. 閉包

文章開頭的推特截圖已經展示了閉包的用法,其中call方法在PHP7中引入,另一個是PHP5.4引入的bindTo。call和bindTo的用法示例如下:

namespace tlanyan;class Foo { private $bar = 'Foo bar!';}$foo = new Foo;// 閉包(匿名函數)是PHP5.3引入的功能$closure = function() { return $this->bar; };// PHP5.4起支持bindTo方法$method = $closure->bindTo($foo, Foo::class);echo $method(), PHP_EOL;// PHP7引入call方法,可綁定this直接執行echo $closure->call($foo), PHP_EOL;

bindTo方法的第二個參數注意傳入對象的 “完全限定類名”,指示函數應該放置在該類的作用域下,從而可以訪問私有屬性。

總結

性能: 數組 > 反射 > 閉包

易用性: 閉包 > 數組 > 反射

推薦: 閉包 > 反射 > 數組

以上就是PHP獲取類私有屬性的3種方法的詳細內容,更多關于PHP獲取類私有屬性的資料請關注好吧啦網其它相關文章!

標簽: PHP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
中文字幕日本一区| 国产日韩一区二区三区在线| 麻豆成人91精品二区三区| 国产欧美一区二区色老头| 久久精品999| 麻豆高清免费国产一区| 久久久久久婷| 久久精品电影| 午夜欧美在线| 欧美在线资源| 亚洲乱亚洲高清| 91亚洲精品在看在线观看高清| 国产伦理一区| 日韩欧美午夜| 久久亚洲风情| 国产欧美一区二区三区精品观看| 久久这里只有精品一区二区| 伊人久久高清| 久久一二三区| 麻豆一区二区99久久久久| 国产一区欧美| 色婷婷色综合| 日本高清不卡一区二区三区视频| 91高清一区| 在线看片日韩| 免费在线观看一区| 欧美 日韩 国产一区二区在线视频| 丝袜a∨在线一区二区三区不卡| 欧美日韩亚洲一区在线观看| 日韩网站中文字幕| 欧美一区免费| 国产尤物精品| 国产精品igao视频网网址不卡日韩| 欧美日韩免费看片| 喷白浆一区二区| 久久精品国产久精国产爱| 欧美亚洲精品在线| 日韩不卡一二三区| 欧美日韩中文一区二区| 日本在线不卡视频一二三区| 国产在线看片免费视频在线观看| 视频一区二区三区在线| 国产精品久久乐| 亚洲二区在线| 国产精品一区二区美女视频免费看 | 国产欧美日韩一级| 久久99蜜桃| 92国产精品| 日韩 欧美一区二区三区| 99成人超碰| 免费一区二区三区在线视频| 免费日韩视频| 久久久五月天| 久久中文欧美| 亚洲精品在线国产| 国产在线欧美| 成人一二三区| 欧美日韩午夜电影网| 精品一区三区| 国产不卡人人| 欧美黑人做爰爽爽爽| 视频在线观看一区| 亚洲成人va| 福利视频一区| 国产极品嫩模在线观看91精品| 悠悠资源网久久精品| 国产一区福利| 国产精品久久亚洲不卡| 日韩综合一区二区| 亚洲欧洲另类| 久久久亚洲一区| 国产videos久久| 国产欧美久久一区二区三区| 蜜臀av一区二区在线免费观看| 日韩欧美一区二区三区免费观看| 国产精品久久久久av蜜臀 | 亚洲尤物在线| 欧美亚洲国产激情| 欧美日韩国产观看视频| 久久这里只有精品一区二区| 国产精品一卡| 国产亚洲电影| 69精品国产久热在线观看| 亚洲区国产区| 免费看黄色91| 99国产精品99久久久久久粉嫩| 激情综合自拍| 亚洲v在线看| 日韩毛片在线| 欧美日韩中文字幕一区二区三区 | 日韩中文字幕在线一区| 一区二区91| 日韩中文字幕| 欧美日韩一视频区二区| 日韩视频一二区| 日本成人一区二区| 日韩精品免费视频人成| 亚洲欧美在线综合| 亚洲青青久久| 久久国产日韩欧美精品| 国产毛片精品| 精品99在线| 日韩一区二区三区免费播放| 国产一区二区三区免费在线| 日韩成人a**站| 久久精品国产68国产精品亚洲| 日本三级亚洲精品| 亚洲激情黄色| 欧美一区自拍| 麻豆精品蜜桃视频网站| 精品久久97| 精品日韩视频| 日韩视频不卡| 自拍日韩欧美| 亚洲深深色噜噜狠狠爱网站| 日韩精品一区二区三区中文字幕| 欧美日本久久| 日韩不卡一区| 夜鲁夜鲁夜鲁视频在线播放| 国产精品99一区二区| 中文字幕中文字幕精品| 欧美日本久久| 亚洲最新无码中文字幕久久| 久久国产影院| 石原莉奈一区二区三区在线观看| 亚洲另类av| 美日韩一区二区三区| 久久精品在线| 日韩av午夜在线观看| 成人精品国产亚洲| 在线精品小视频| 国产欧美亚洲一区| 欧美日韩国产v| 亚洲少妇诱惑| 日韩不卡一区二区三区 | 久久午夜精品| 国产精品乱战久久久| 伊人久久视频| 美女精品网站| 国产高清亚洲| 欧美成人精品| 日本成人中文字幕| 日韩精品麻豆| 青草国产精品| av一区在线| 日韩中文字幕无砖| 国产精品毛片久久| 亚洲一区有码| 日本亚洲三级在线| 亚洲精品网址| 丝袜美腿亚洲一区二区图片| 91精品国产福利在线观看麻豆| 日本欧美在线| 免费看黄色91| 成人羞羞视频播放网站| 一二三区精品| 国模大尺度视频一区二区| 久久最新视频| 日韩电影免费在线观看| 日本v片在线高清不卡在线观看| 久久不卡国产精品一区二区| 欧美日韩国产精品一区二区亚洲| 国产极品一区| 亚洲区国产区| 免费精品国产| 理论片午夜视频在线观看| 日韩福利视频一区| 亚洲激情中文在线| 久久精品九色| 日韩免费精品| 国产精品嫩草99av在线| 最新中文字幕在线播放| 日韩成人午夜精品| 国产亚洲在线观看| 精品免费av在线| 麻豆精品在线播放| 日韩高清欧美激情| 一二三区精品| 国产欧美一区二区三区米奇| 香蕉国产精品| 97国产成人高清在线观看| 日本欧美韩国一区三区| 好看的亚洲午夜视频在线| 高清日韩中文字幕| 国产精品亚洲成在人线| 日日摸夜夜添夜夜添国产精品| 伊人精品在线| 亚洲韩日在线| 久久天堂精品| 午夜av成人| 中文字幕系列一区| 国产精品麻豆成人av电影艾秋| 亚洲精品系列| 一本一道久久a久久| 午夜在线精品| 黄色成人精品网站| 亚洲国产一区二区三区在线播放 | 亚洲视频二区| 免费在线观看成人| 成人美女视频|