PHP:在函数中正确使用return - 使用变量还是直接使用数字?

时间:2012-11-10 08:23:14

标签: php

我希望返回一个值为50或值为25的整数。这是执行此操作的正确方法,还是应创建变量$temp1=50$temp2=25并返回变量刚刚返回50和25。

function somefunction($length)
{

    if ($length > 50) 
    {
        return 50;
    } else {
        return 25;
    }
}

对不起,如果重复,我看了。

6 个答案:

答案 0 :(得分:3)

你做这件事的方式非常好。将变量的值分配给return实际上没有任何意义 作为替代方案的更好版本,对于一些更复杂的情况,您最终需要返回一个变量,您可以只使用一个变量而不是您建议的两个变量。更像是

function somefunction($length)
{
    $myVar = 0;

    if ($length > 50) {
        $myVar = 50;
    } 
    else {
        $myVar = 25;
    }

    return $myVar;
}

答案 1 :(得分:3)

之前没有必要分配变量。只需写下

return ($length > 50 ? 50 : 25);

答案 2 :(得分:2)

在返回之前分配变量是没有意义的。您正在返回 50本身就是一个非常好的值,在返回之前不需要将其分配给变量

换句话说:你已经做好了。

答案 3 :(得分:0)

这取决于你想做什么:

如果您只想返回一个常量,或者您想要参数此常量。

在常量的情况下,为了便于阅读,您可以命名它们:

define('RETURN_CONSTANT_SUP',50);
define('RETURN_CONSTANT_INF',25);

function somefunction($length)
{

if ($length > RETURN_CONSTANT_SUP) 
{
    return RETURN_CONSTANT_SUP;
} else {
    return RETURN_CONSTANT_INF;
}
}

所以你以正确的方式做到这一点,如果有一天你想重用这些值,你可以使用常量。

答案 4 :(得分:0)

我会说你的功能问题不是回报而是输入。

无论如何,你的问题有点理论。因为返回一个常量整数值和一个变量都可以。它甚至没有太大的区别。请参阅以下示例:

function somefunction($length)
{
    return 25 + 25 * ($length > 50);
}

代码的问题在于您只为这些特定值编写了代码。因此,不使用变量可能是代码受限的标志。但由于回归而减少,因为流量更多。

function integer_top_cut_drop($value, $top, $default)
{
    $value   = (int) $value;
    $top     = (int) $top;
    $default = (int) $default;

    if ($value > $top) 
    {
        return $top;
    }

    return $default;
}

正如此函数所示,那里没有数字,只有变量。它几乎可以完成现有函数的功能,但一切都是可变的。具有常量值的数字已被删除,现在作为参数传递:

function somefunction($length)
{
    return integer_top_cut_drop($length, 50, 25);
}

因此,您通常不会担心返回变量,常量,某种其他类型的表达式或其他函数是否返回值。

更重要的是,您的代码会执行它必须执行的操作,并以有用的方式执行此操作。

这可能意味着在您的代码中您的功能已经完全正常。

但请注意,您自己可以重复使用常用部件,例如:像这里显示的新功能。对于你的例子来说,这可能有点过头了,但只是为了展示图片。

函数可以保留逻辑,因此您不需要多次编写该部分。它还使用该函数减小了代码其他部分的大小。

答案 5 :(得分:0)

没有正确的方法来执行此操作。

此问题与风格和偏好有关,您将无法获得明确的答案。
只需使用最好的(除非你当然是在团队中工作,在这种情况下你应该调整团队的编码风格指南)。