为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信