类如何作为函数自变量初始化?

问题描述 投票:0回答:3

[当一个函数有一个类作为参数时,您可以在不启动它的情况下使用该类。有人可以解释如何将此类作为函数参数启动吗?请参见下面的代码以进行澄清。

    /**
     *
     * @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();
    }
php class instantiation
3个回答
0
投票

未实例化。那只是一个已经被暗示为PseudoClass对象的参数。必须创建一个PseudoClass对象,并将其传递给pseudoFunction,此代码才能在运行时工作。


0
投票

代码仅显示方法逻辑。在现实生活中,在将其用作函数的参数之前,您仍然需要实例化使用的类。

某些框架使用自动注入,但是仍然在内部实例化它们。


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);
?>

了解有关DI here的更多信息

© www.soinside.com 2019 - 2024. All rights reserved.