php开关vs If elseif
我只是想知道是否应该在php中使用“Switch”或“if…else if”。(示例代码blow)。我在谷歌上搜索过,但我读过的文章都有点过时了。 我还想知道在Switch语句中这样做是否明智php开关vs If elseif,php,if-statement,switch-statement,Php,If Statement,Switch Statement,我只是想知道是否应该在php中使用“Switch”或“if…else if”。(示例代码blow)。我在谷歌上搜索过,但我读过的文章都有点过时了。 我还想知道在Switch语句中这样做是否明智 switch ( $name ) { case 'name1': $data['pageName'] = 'name1'; $data['pageTitle'] = 'Name 1'; $this->view('name1/index', $
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);
}
您经常重复自己,相反,您可以使用数组、
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);
您经常重复自己,相反,您可以使用数组、
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);
我完全同意上面Steve的建议,但是如果代码只是示例,那么使用if/else或switch/case并不重要。这完全是个人喜好的问题。这里还有一个关于性能细节的问题:我完全同意上面Steve的建议,但是如果代码只是一个例子,那么使用if/else或switch/case并不重要。这完全是个人喜好的问题。这里还有一个关于性能细节的问题:我在有多个elseif时使用开关,只是为了更好的可读性。我会让其他人说,如果他们有任何表现。您的代码结构和重复调用数组映射。当我有多个elseif时,我使用该开关,只是为了更好的可读性。我会让其他人说,如果他们有任何表现。你的代码结构和重复需要一个数组映射。这和op的代码+1有多大的区别啊!这和op的代码+1有多大区别!另见