是否应该以这种方式使用switch语句?

时间:2014-06-22 10:39:55

标签: php switch-statement

使用switch作为支持多种文件格式的方式是否可以接受,还是不好的做法?

像这样(未经测试):

<?php

    // Load file
    switch ($data_format) {
        case 'xml':
            $openfile = simplexml_load_file($filename . '.xml');
            break;

        case 'json':
            $openfile = json_decode(file_get_contents($filename . '.json'));
            break;
    }

    // Do stuff

    // Save file
    switch ($data_format) {
        case 'xml':
            $openfile->asXML($filename . '.xml');
            break;

        case 'json':
            file_put_contents($filename . '.json', json_encode($openfile, JSON_PRETTY_PRINT));
            break;
    }

?>

1 个答案:

答案 0 :(得分:2)

这取决于您的编码风格。如果你想面向对象,那么这将违背这个想法。在这种情况下,你会使用类似的东西:

$file = $repository->open($filename, $data_format);
// do stuff
$file->save();

当然$repository->open()需要使用不同的保存方法返回一个对象,具体取决于您的数据格式。

但是,如果你不是面向对象但是旧的程序风格,我看不出你使用switch语句有什么问题。