【发布时间】:2010-10-30 12:41:10
【问题描述】:
鉴于这个类:
class Tacobell{
public function order_taco(){
echo "3 Tacos, thank you.";
}
public function order_burrito(){
echo "Cheesy bean and rice, please";
}
}
$lunch = new Tacobell;
$lunch->order_burrito();
$lunch->order_taco();
我该如何做这样的事情?
$myOrder = 'burrito';
$lunch->order_.$myOrder;
很明显,代码是废话——但显示了我正在尝试做的事情,而不是试图解释它。
也许我做错了。我想到了一个带有 switch 语句的方法,传入 burrito 或 taco,然后从那里调用正确的方法。但是我必须从头知道结束,我可能有很多方法,我宁愿不必每次都更新 switch 语句。
谢谢!
【问题讨论】:
-
这可以使用对象来完成,您可以为每个项目设置类,每个项目都可以符合相同的接口,然后有一个 order() 方法将采用 OrderItem 对象,该对象可以是BurritoOrderItem 或 TacoOrderItem。当需要反射或有可变方法调用时,我总是畏缩,这对我来说并不干净。
标签: php oop variable-variables