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

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

類如何作為函數參數啟動?

類如何作為函數參數啟動?

PHP
HUH函數 2023-03-04 16:48:01
當一個函數有一個類作為參數時,你可以使用這個類而不用初始化它。有人能解釋一下這個類是如何作為函數參數啟動的嗎?請參閱下面的代碼以進行說明。    /**     *     * @param PseudoClass $class     * @return void     */    public function pseudoFunction(PseudoClass $class)    {        // access PseudoClass instance from function argument        $class->exampleFunction();        // instead of manually creating a new instance of the PseudoClass        new PseudoClass();        $class->exampleFunction();    }
查看完整描述

3 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

該代碼僅顯示方法邏輯。在現實生活中,您仍然需要在使用它作為函數的參數之前實例化您使用的類。

一些框架使用自動注入,但它們仍然在底層被實例化。


查看完整回答
反對 回復 2023-03-04
?
慕后森

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

它沒有實例化。這只是一個被類型提示為 PseudoClass 對象的參數。必須創建一個 PseudoClass 對象并將其傳遞給 pseudoFunction,此代碼才能在運行時運行。



查看完整回答
反對 回復 2023-03-04
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

它被稱為 DI(依賴注入)。在面向對象編程中,我們使用這種模式,但取決于您遵循的設計。


依賴注入是一種技術,其中一個對象提供另一個對象的依賴關系。


用例示例:


<?php


? ? class Skills {


? ? ? ? public function Web(){

? ? ? ? ? ? return 'Web Developer';? ??

? ? ? ? }


? ? ? ? public function Api(){

? ? ? ? ? ? return 'API Developer';

? ? ? ? }? ? ? ? ? ??


? ? }



? ?class Programmer {


? ? ? public function skill(Skills $skills){

? ? ? ? ?echo $skills->Api();

? ? ? }


? ?}


? ?// Instantiate Skills class to be used for DI.

? ?$skills = new Skills();

? ?$p = new Programmer();

? ?// DI occurs here.

? ?$p->skill($skills);

?>



查看完整回答
反對 回復 2023-03-04
  • 3 回答
  • 0 關注
  • 144 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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