我只是想知道我是否应该使用' Switch'或者'如果......其他如果'在PHP中。 (示例代码打击)。我有一个谷歌搜索,但我读过的文章都有点老了。 我也想知道我在Switch语句中做的事情是否明智。
switch ( $name ) {
case 'name1':
$data['pageName'] = 'name1';
$data['pageTitle'] = 'Name 1';
$this->view('name1/index', $data);
break;
case 'name2':
$data['pageName'] = 'name2';
$data['pageTitle'] = 'Name 2';
$this->view('name2/index', $data);
break;
case 'name3':
$data['pageName'] = 'name3';
$data['pageTitle'] = 'Name 3';
$this->view('name3/index', $data);
break;
case 'name4':
$data['pageName'] = 'name4';
$data['pageTitle'] = 'Name 4';
$this->view('name4/index', $data);
break;
default:
$data['pageName'] = 'default';
$data['pageTitle'] = 'Default';
$this->view('default/index', $data);
}
if( $name = 'name1' ) {
$data['pageName'] = 'name1';
$data['pageTitle'] = 'Name 1';
$this->view('name1/index', $data);
} else if( $name = 'name2' ) {
$data['pageName'] = 'name2';
$data['pageTitle'] = 'Name 2';
$this->view('name2/index', $data);
} else if( $name = 'name3' ) {
$data['pageName'] = 'name3';
$data['pageTitle'] = 'Name 3';
$this->view('name3/index', $data);
} else if( $name = 'name4' ) {
$data['pageName'] = 'name4';
$data['pageTitle'] = 'Name 4';
$this->view('name4/index', $data);
} else {
$data['pageName'] = 'default';
$data['pageTitle'] = 'default';
$this->view('default/index', $data);
}
答案 0 :(得分:5)
你正在重复自己,而是可以使用数组isset
和单个if语句:
$names = [
'name1' => 'Name 1',
'name2' => 'Name 2',
'name3' => 'Name 3',
'name4' => 'Name 4',
'default' => 'default'
];
$name = isset($names[$name]) ? $name : 'default';
$data['pageName'] = $name;
$data['pageTitle'] = $names[$name];
$this->view($name . '/index', $data);
答案 1 :(得分:0)
我绝对同意史蒂夫上面的建议,但如果代码只是例如,如果你使用if / else或switch / case就没关系。这完全是一个偏好问题。以下是另一个询问有关效果详情的问题:Performance: if else vs switch, while vs for, for each vs for, print vs printf