如何组合两个返回相同值的函数

时间:2016-03-15 13:33:29

标签: php function

function doc_links_fileSize($filesize){
if ($filesize < 1024) return $bytes.'B';
elseif ($filesize < 1048576) return round($filesize / 1024, 2).'KB';
elseif ($filesize < 1073741824) return round($filesize / 1048576, 2).'MB';
elseif ($filesize < 1099511627776) return round($filesize / 1073741824, 2).'GB';
else return round($bytes / 1099511627776, 2).'TB';
}


function images_links_fileSize($filesize){
if ($filesize < 1024) return $bytes.'B';
elseif ($filesize < 1048576) return round($filesize / 1024, 2).'KB';
elseif ($filesize < 1073741824) return round($filesize / 1048576, 2).'MB';
elseif ($filesize < 1099511627776) return round($filesize / 1073741824, 2).'GB';
else return round($bytes / 1099511627776, 2).'TB';
}

如何组合两个返回相同值的函数。我想通过组合两个函数来减少代码,因为这两个函数都返回相同的值

2 个答案:

答案 0 :(得分:2)

只需使用一个功能,并为其指定一个更常见的名称(涵盖所有文档,图像等)。

function getFileSize($filesize){
    if ($filesize < 1024) return $bytes.'B';
    elseif ($filesize < 1048576) return round($filesize / 1024, 2).'KB';
    elseif ($filesize < 1073741824) return round($filesize / 1048576, 2).'MB';
    elseif ($filesize < 1099511627776) return round($filesize / 1073741824, 2).'GB';
    else return round($bytes / 1099511627776, 2).'TB';
}

答案 1 :(得分:1)

一个函数可以调用另一个函数。像这样,

<?php
    function doc_links_fileSize($filesize){
        if ($filesize < 1024) return $bytes.'B';
        elseif ($filesize < 1048576) return round($filesize / 1024, 2).'KB';
        elseif ($filesize < 1073741824) return round($filesize / 1048576, 2).'MB';
        elseif ($filesize < 1099511627776) return round($filesize / 1073741824, 2).'GB';
        else return round($bytes / 1099511627776, 2).'TB';
    }

    function images_links_fileSize($filesize){
        return doc_links_fileSize($filesize);
    }
?>

但最好的方式就像@RomanPerekhrest说的那样。