[当一个函数有一个类作为参数时,您可以在不启动它的情况下使用该类。有人可以解释如何将此类作为函数参数启动吗?请参见下面的代码以进行澄清。
/**
*
* @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();
}
未实例化。那只是一个已经被暗示为PseudoClass对象的参数。必须创建一个PseudoClass对象,并将其传递给pseudoFunction,此代码才能在运行时工作。
代码仅显示方法逻辑。在现实生活中,在将其用作函数的参数之前,您仍然需要实例化使用的类。
某些框架使用自动注入,但是仍然在内部实例化它们。
它称为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的更多信息