我希望返回一个值为 50 或 25 的整数。这是执行此操作的正确方法还是应该创建一个变量$temp1=50
并$temp2=25
返回该变量,而不仅仅是返回 50 和 25。
function somefunction($length)
{
if ($length > 50)
{
return 50;
} else {
return 25;
}
}
对不起,如果重复,我看了。
我希望返回一个值为 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;
}
之前没有必要分配变量。写吧
return ($length > 50 ? 50 : 25);
在返回之前分配给变量是没有意义的。您正在返回一个value。50
本身就是一个非常好的值,它不需要在返回之前分配给变量。
换句话说:你已经做对了。
这取决于你想做什么:
如果您只想返回一个常量,或者您想参数化这个常量。
在常量的情况下,为了便于阅读,您可以将它们命名为:
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);
}
因此,您通常从不关心您是否返回变量、常量、其他类型的表达式或其他函数的返回值。
更重要的是,你的代码做了它必须做的事情,并且你以一种有用的方式去做。
这可能意味着在您的代码中您的功能已经完全正常。
但是请考虑您使自己可以重复使用公共部分,例如,如此处所示的具有新功能的部分。对于您的示例,这可能有点过分,但只是为了展示图片。
函数可以保留逻辑,因此您不需要多次编写该部分。它还使用该函数减少了代码其他部分的大小。
没有正确的方法可以做到这一点。
这个问题是关于风格和偏好的,你无法得到明确的答案。
只使用你最喜欢的(当然,除非你在一个团队中工作,在这种情况下你应该适应团队的编码风格指南)。