我想写下面的代码,不带switch,if else或三元运算符。代码如下所示:
switch (type){
case 'bed':
function create{
return new Bed($customer, $price, $dimensions );
}
break;
case 'desk':
function create{
return new Desk($customer, $price, $dimensions);
}
break;
case 'chair':
function create{
return new Chair($customer, $price, $dimensions, $type );
}
break;
}
4条答案
按热度按时间a14dhokn1#
如果你想在这里调用另一个类,你可以把你想要的类设置为全局的。然后在下面的函数中,你可以在那里使用global来调用它们。
输出示例:
atmip9wb2#
你可以在if else语句中使用相同的代码,如下所示。if ==不起作用,尝试添加===代替
nkoocmlb3#
您可以使用储存在
$type
中的类别名称,传回类别的新执行严修,让程式码更简洁。若要以不同的参数呼叫建构函式,请使用splat运算子,将参数收集在数组中。pgvzfuti4#
您可以创建一个Map到类创建器函数的允许 * 类型 * 列表,而不是使用条件。
需要PHP 8.1.0或更高版本
https://3v4l.org/fDuKG#v8.1.12