精简一个if语句

WBOY
リリース: 2016-06-06 20:48:31
オリジナル
1207 人が閲覧しました

<code>if(in_array($file_ext, $ext_arr['image']))
    $file_path='uploads/image/'.$new_file_name;
if(in_array($file_ext, $ext_arr['media']))
    $file_path='uploads/media/'.$new_file_name;
if(in_array($file_ext, $ext_arr['file']))
    $file_path='uploads/file/'.$new_file_name;
</code>
ログイン後にコピー
ログイン後にコピー

大家看看上面的代码如何精简一下。

回复内容:

<code>if(in_array($file_ext, $ext_arr['image']))
    $file_path='uploads/image/'.$new_file_name;
if(in_array($file_ext, $ext_arr['media']))
    $file_path='uploads/media/'.$new_file_name;
if(in_array($file_ext, $ext_arr['file']))
    $file_path='uploads/file/'.$new_file_name;
</code>
ログイン後にコピー
ログイン後にコピー

大家看看上面的代码如何精简一下。

$ext_arr 给取缔了,改成

<code class="lang-php">$types_of_extensions = array(
    'jpg' => 'image',
    'png' => 'image',
    'gif' => 'image',
    'rmvb' => 'media',
    'mp3' => 'media',
    'doc' => 'file',
    'pptx' => 'file'
    /* ... and many more, whatever u want */
);

$file_path = 'uploads/' . $types_of_extensions[$file_ext] . '/' . $new_file_name;
</code>
ログイン後にコピー

<code>foreach(array('image', 'media', 'file') as $type) 
    foreach($ext_arr[$type] as $t) @$ext[$t] = $type;
$file_path = "uploads/{$ext[$file_ext]}/$new_file_name";
</code>
ログイン後にコピー

只是讨论精简的话,这个成功精简三行的样子而且字数上也少很多,两行的样子比较难看我就不缩了~

精简减不了 流程上可优化

<code>if(in_array($file_ext, $ext_arr['image']))  
    $file_path='uploads/image/'.$new_file_name;  
elseif(in_array($file_ext, $ext_arr['media']))  
    $file_path='uploads/media/'.$new_file_name;  
elseif(in_array($file_ext, $ext_arr['file']))  
    $file_path='uploads/file/'.$new_file_name;
</code>
ログイン後にコピー

<code class="lang-php">foreach (array('image', 'media', 'file') as $type) {
  if(in_array($file_ext, $ext_arr[$type])){
    $file_path="uploads/$type/$new_file_name";
    break;
  }
}
</code>
ログイン後にコピー

这代码高亮不支持高亮 PHP 里的字符串内插么……

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート