Php 如何从1个接口(类)使用不同的类
我有个问题 例如:我有类“Provider”和子类“Provider\u 1”、“Provider\u 2” “提供商”-“提供商1”和“提供商2”的经理 它现在的工作原理:Php 如何从1个接口(类)使用不同的类,php,oop,Php,Oop,我有个问题 例如:我有类“Provider”和子类“Provider\u 1”、“Provider\u 2” “提供商”-“提供商1”和“提供商2”的经理 它现在的工作原理: 我在“Provider”、“Provider_1”和“Provider_2”类中有一个getFullInfo()方法 我想从提供者_1::getFullInfo()获取信息,但我的控制器必须通过“提供者”类工作 我确实请求:Provider::getFullInfo($Provider_id)和in Provider::g
我不确定我是否正确理解了您试图实现的目标。请举例说明我的评论。如您所见,如果您从同一接口/类扩展了所有接口/类,那么只要您知道
super
类型Foo的名称,就可以在不测试实际类型的情况下调用该方法
<?php
class Foo {
protected $name;
public function __construct($n) {
$this->name = $n;
}
public function getName() {
return $this->name;
}
}
class Bar extends Foo {
}
class FooBar extends Foo {
public function getName() {
return strtoupper($this->name);
}
}
function sayName(Foo $f) {
return 'Hello '. $f->getName();
}
$instances = array(
new Foo('Foo'),
new Bar('Bar'),
new FooBar('FooBar'),
);
foreach($instances as $instance) {
echo sayName($instance).'<br />'.PHP_EOL;
}
显示您的实际代码,您是否使用了:
指示的静态方法?类提供程序1
和提供程序2
是否继承提供程序
?如果是这样的话,您可以调用getFullInfo
,而不必知道它是produver
、provider\u 1
还是provider\u X
@DarkBee,您可以使用链接到示例?@JuanMendes不需要它。我可以使用非静态类。您在询问有关代码的问题时,没有向我们展示您的代码。你不觉得这很傻吗?