【问题标题】:How can i combine two function which returns same value如何组合两个返回相同值的函数
【发布时间】:2016-03-15 13:33:28
【问题描述】:
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';
}

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

【问题讨论】:

  • 它们是否只返回相同的值,或者它们是具有不同名称的相同函数?如果是这样,为什么你需要两者?
  • 函数是相同的,看这里stackoverflow.com/questions/1688711/…如果你不想通过整个代码更改函数名,如何将一个函数名别名为另一个函数名
  • @AlexAndrei 如果这些函数做的事情完全相同,为什么我们还要给它们起别名呢?我只是想了解其中的原因。
  • 如果两个函数名都已在代码库中使用并且 OP 不想重构
  • 我明白了,是的,我想这在那种情况下可能很有用。谢谢。

标签: php function


【解决方案1】:

只需使用一个函数并给它一个更通用的名称(它将涵盖所有文档、图像等)

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';
}

【讨论】:

    【解决方案2】:

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

    <?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 所说的最好的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      相关资源
      最近更新 更多