スイッチやif/elseステートメントを使って、以下のように書くより良い方法はありますか? PHPのvaraiable変数($$ var)が使えるような状況ですか? このコードを書くにはどうすればいいですか?それはしかし、あなたがGDで画像を開くには、これを使用している場合は、大丈夫に見えるどのようにこのPHPコードをやりますか?
array_key_exists($type, $types) ? $types[$type] : 'jpg';
スイッチやif/elseステートメントを使って、以下のように書くより良い方法はありますか? PHPのvaraiable変数($$ var)が使えるような状況ですか? このコードを書くにはどうすればいいですか?それはしかし、あなたがGDで画像を開くには、これを使用している場合は、大丈夫に見えるどのようにこのPHPコードをやりますか?
array_key_exists($type, $types) ? $types[$type] : 'jpg';
$types = array(1 => 'gif', 2 => 'jpg', 3 => 'png', 4 => 'jpg');
...:
$type = 2;
switch ($type) {
case 1:
$type = 'gif';
break;
case 2:
$type = 'jpg';
break;
case 3:
$type = 'png';
break;
default:
$type = 'jpg';
break;
}
私は配列を使用したいですより簡単な方法を使用できます:
ImageCreateFromString(file_get_contents('path/to/your/image.ext'));
これは2行分のコードにも分かりますか?私はそれらを再利用する必要があるときに、スイッチの大きさが特に大きいことが嫌いです。 – JasonDavis
@ジャスダビス:確かに、すべてを1行に入れることもできます。しかし、私は読みやすさを好む。 – Gumbo
@ジャスダビス:あなたが何回入力したかによって決まります:) – Zed
$types = array(
1 => 'gif',
2 => 'jpg',
3 => 'png'
);
if (isset($types[$type])) {
$type = $types[$type];
} else {
$type = 'jpg';
}
これは、それが使われていないものです – JasonDavis
2はデフォルトと同じなので、カスケードすることができます。私は配列の答えが気に入っていますが、スイッチが必要な場合は、これを行うより良い方法ですので、繰り返しはしません。
$type = 2;
switch ($type) {
case 1:
$type = 'gif';
break;
case 3:
$type = 'png';
break;
case 2:
default:
$type = 'jpg';
break;
}
上記と同じですが、短いバージョン! – JasonDavis
配列項目はセミコロンではなくコンマで区切られています。 – Gumbo
ありがとう、それを修正しました。 – Zed