有没有更好的方法来编写下面的内容,除了使用switch或if / else语句?就像这是一个PHP的可变变量($$ var)可以使用的情况? 如果是这样,您将如何编写此代码?
$type = 2;
switch ($type) {
case 1:
$type = 'gif';
break;
case 2:
$type = 'jpg';
break;
case 3:
$type = 'png';
break;
default:
$type = 'jpg';
break;
}
答案 0 :(得分:12)
我使用数组:
$types = array(
1 => 'gif',
2 => 'jpg',
3 => 'png'
);
if (isset($types[$type])) {
$type = $types[$type];
} else {
$type = 'jpg';
}
答案 1 :(得分:7)
$types = array(1 => 'gif', 2 => 'jpg', 3 => 'png', 4 => 'jpg');
...
array_key_exists($type, $types) ? $types[$type] : 'jpg';
答案 2 :(得分:1)
由于2与默认值相同,因此可以让它级联。我更喜欢阵列的答案,但如果你需要一个开关,这将是一个更好的方法,所以你不要重复自己。
$type = 2;
switch ($type) {
case 1:
$type = 'gif';
break;
case 3:
$type = 'png';
break;
case 2:
default:
$type = 'jpg';
break;
}
答案 3 :(得分:0)
看起来没问题,但是如果您使用它在GD中打开图像,您可以使用更简化的方式:
ImageCreateFromString(file_get_contents('path/to/your/image.ext'));