nisizono nisizono 2012-09-03 16:01:28

[PHP] switch文の乱用 このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

臭うファイルがあったので開いてみたら・・・

switch($mode){
case "a":
case "b":
case "c":
	switch($mode){
	case "a":
		$type = "A";   
		break;
	case "b":	
		$type = "B";   
		break;
	case "c":	
		$type = "C"; 
		break;		
	}
	
	$data = array();
	$data['url'] = "F";
	if($mode == "c"){ 
		$data['custom']        = "G";
	}else{
		$data['custom']        = "H";
	}
	break;
case "d":
case "e":
	switch($mode){
	case "e":
		$type = "E";
		break;		
	}
	
	$data = array();
	if($mode == "d"){
		$data['url']        = "I";
	}else{
		$data['url']        = "J";
	}
    
    // 処理
    
	if($mode == "d"){     
		$data['custom']        = "K";
	}else{
		$data['custom']        = "L";
      
	}
	break;	
default:
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(5)

#1 math_neko math_neko 2012-09-03 15:55:44  

ほとんど if 文みたいな使われ方してる switch 文…後半の if 文も何で 2 つに分けたし…これはウンコだw

#2 hardtimes777 hardtimes777 2012-09-03 19:41:21  

味があるなぁ。$modeが"d"のとき、$typeを指定しなくて大丈夫なの?

#3 m_shige1979 m_shige1979 2012-09-03 20:01:58  

これは一度作成した後に処理を別途追加したのかな? 最初からこのコードだったらマズイ

#4 math_neko math_neko 2012-09-04 14:07:14  

概ね最初に書いてたやつがトンズラして、引き継ぎもろくにないまま誰かが続きを書いたんじゃないかと想像。

#5 kokkekun kokkekun 2012-11-01 15:16:02  

デザインの都合とか論理的じゃない条件で分岐せざるをえない時にswitchだと読みづらくなることもあるよね、て思ったら判定条件は全部$modeだった

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[Java] is禁止令

このエントリーをはてなブックマークに追加

ウンコードの趣旨とは違い、レビューで指摘...

// Mod yamada Start

// 一般的に考えて真偽値を返すメ...

鑑賞する »

[Java] フルHD推奨。

このエントリーをはてなブックマークに追加

画面の左側がわりと無駄な気がします。

public int hoge(){
    int result = 0;
...

鑑賞する »

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »