你会怎么做这个PHP代码?

时间:2009-08-16 16:42:08

标签: php

有没有更好的方法来编写下面的内容,除了使用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;
}

4 个答案:

答案 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'));