类如何作为函数参数启动?

当一个函数有一个类作为参数时,你可以使用这个类而不用初始化它。有人能解释一下这个类是如何作为函数参数启动的吗?请参阅下面的代码以进行说明。


    /**

     *

     * @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();

    }


HUH函数
浏览 107回答 3
3回答

www说

该代码仅显示方法逻辑。在现实生活中,您仍然需要在使用它作为函数的参数之前实例化您使用的类。一些框架使用自动注入,但它们仍然在底层被实例化。

慕后森

它没有实例化。这只是一个被类型提示为 PseudoClass 对象的参数。必须创建一个 PseudoClass 对象并将其传递给 pseudoFunction,此代码才能在运行时运行。

catspeake

它被称为 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);?>
打开App,查看更多内容
随时随地看视频慕课网APP