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

歡迎訪問 生活随笔!

生活随笔

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

php

php 受保护类,php中如何在外部修改类的私有或受保护属性值

發(fā)布時間:2023/12/15 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 受保护类,php中如何在外部修改类的私有或受保护属性值 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

php中怎么在外部修改類的私有或受保護屬性值

在做單元測試框架時,發(fā)現(xiàn)了個比較郁悶的問題:測試人員需要在類外修改類的private或protected成員變量的值,而這些變量沒有抽象成public的屬性,同時為了代碼量的問題,也不可能修改要測試的類。怎么在類外修改類的私有變量呢?請看下面的關鍵代碼:

類文件sellAction.php, 內(nèi)容如下:

cUid;echo "

";echo "output private id :".$this->id;echo "

";echo "output public pId:".$this->pId;echo "

";}}

測試文件test.php,內(nèi)容如下:

$val) { $pro = $reflectCls->getProperty($key);if($pro && ($pro->isPrivate() || $pro->isProtected())){$pro->setAccessible(true);$pro->setValue($reference, $val);}else{$reference->$key = $val;} } return true;}$act = new SellAction();echo "not set private protect public var";echo "

";var_dump($act);$act->output();$attr = array('cUid'=>'234556', 'pId'=>'987676757', 'id'=> '782100');initReferenceAttr($act, $attr);echo "

";print_r($attr);echo "

";echo "

";echo "set private protect public var ";echo "

";var_dump($act);echo "

";$act->output();

在瀏覽器中,直接瀏覽test.php,內(nèi)容大致如下:

not set private protect public varobject(SellAction)#1 (3) { ["cUid":protected]=> NULL ["id":"SellAction":private]=> NULL ["pId"]=> NULL } output protected cUid :output private id :output public pId:Array ( [cUid] => 234556 [pId] => 987676757 [id] => 782100 ) set private protect public var object(SellAction)#1 (3) { ["cUid":protected]=> string(6) "234556" ["id":"SellAction":private]=> string(6) "782100" ["pId"]=> string(9) "987676757" } output protected cUid :234556output private id :782100output public pId:987676757

上面的demo主要是通過反射實現(xiàn)該功能。反射功能需要php版本>=5.3,反射的相關信息請參閱:http://php.net/manual/en/book.reflection.php

相關文章

相關視頻

總結(jié)

以上是生活随笔為你收集整理的php 受保护类,php中如何在外部修改类的私有或受保护属性值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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