亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 反射類和實例化類的區別

PHP 反射類和實例化類的區別

PHP
慕森王 2019-03-17 22:07:25
今天在碼代碼的時候發現一個問題,在獲取一個類的實例的時候發現在構造函數中存在參數依賴,導致不能直接實例化該類.通過leader指導使用了reflectionClass,但是不明白其中的區別.希望有人能解答一下 $fronted_instance = new \ReflectionClass($fronted_name); $backend_instance = new \ReflectionClass($backend_name);
查看完整描述

2 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

這兩者是一個個體,但又有本質區別。

new class()是一個類對象封裝后的展現,你不需要知道類的私有成員和方法,以及內部作用機制,便可以直接通過類開放的成員方法和屬性來使用它。

而 new ReflectionClass()反射類則是一個類對象開封后的展現,它將類的內部屬性,包括公開或私有的屬性/方法,是否是靜態,接口、繼承、命名空間信息,甚至注釋等全部公開,都可以通過反射api進行訪問。

由此可見反射類的強大之處。但通常使用反射在于編寫業務更為復雜的底層邏輯。而對外的功能開發還是使用實例化類封裝,也更安全便捷。

望采納。

查看完整回答
1 反對 回復 2019-03-18
?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

實例化類,以及調用該類的屬性和成員方法都是對這個類已知的情況下進行的。但是,對于一個未知的類,你不清楚類成員變量和成員方法以及各自的權限。此時就可以用通過反射機制來探知這個類的所有信息,基于此在于操作這個類。

查看完整回答
反對 回復 2019-03-18
  • 2 回答
  • 0 關注
  • 873 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號