Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:在函数中正确使用return-使用变量还是直接使用数字?_Php - Fatal编程技术网

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

PHP:在函数中正确使用return-使用变量还是直接使用数字?,php,Php,我希望返回一个值为50或25的整数。这是正确的方法吗?还是我应该创建一个变量$temp1=50和$temp2=25,然后返回变量,而不是只返回50和25 function somefunction($length) { if ($length > 50) { return 50; } else { return 25; } } 对不起,如果是重复的,我看了看。你这样做完全没问题。将一个值赋给一个变量,使其只返回retur

我希望返回一个值为50或25的整数。这是正确的方法吗?还是我应该创建一个变量
$temp1=50
$temp2=25
,然后返回变量,而不是只返回50和25

function somefunction($length)
{

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

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

你这样做完全没问题。将一个值赋给一个变量,使其只返回
return
实际上没有意义。
作为替代方案的更好版本,对于一些更复杂的情况,最终需要返回一个变量,您可以只使用一个变量,而不是建议的两个。更像

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

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

    return $myVar;
}

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


换句话说:您已经做对了。

之前不必指定变量。只要写

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

这取决于你想做什么:

如果您只想返回一个常量,或者如果您想参数化这个常量

对于常量,为了便于阅读,可以将其命名为:

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

因此,如果有一天您想重用这些值,那么您可以使用常量。我想说,函数的问题不是返回,而是输入

不管怎样,你的问题有点理论性。因为返回常量整数值和变量都可以。这根本没什么区别。请参见以下示例:

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);
}
因此,您通常从不关心是否返回变量、常量、其他类型的表达式或其他函数返回值

更重要的是,您的代码完成了它必须做的事情,并且您以一种有用的方式完成了它

这可能意味着在您的代码中,您的函数已经非常好了

<>但是请考虑一下,你可以重新使用普通的部件,比如这里用一个新的函数来显示。对于您的示例来说,这可能有点过头了,但只是为了展示图片


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

没有正确的方法来做到这一点

这个问题是关于风格和偏好的,你无法得到明确的答案。

只要使用你最喜欢的(当然,除非你是在团队中工作,在这种情况下,你应该调整团队的编码样式指南)。

同样没有必要在这个表达式周围加上圆括号。乘以一个条件。。。哦,疼痛,剩下的我喜欢。