PHP:在函数中正确使用return-使用变量还是直接使用数字?
我希望返回一个值为50或25的整数。这是正确的方法吗?还是我应该创建一个变量PHP:在函数中正确使用return-使用变量还是直接使用数字?,php,Php,我希望返回一个值为50或25的整数。这是正确的方法吗?还是我应该创建一个变量$temp1=50和$temp2=25,然后返回变量,而不是只返回50和25 function somefunction($length) { if ($length > 50) { return 50; } else { return 25; } } 对不起,如果是重复的,我看了看。你这样做完全没问题。将一个值赋给一个变量,使其只返回retur
$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);
}
因此,您通常从不关心是否返回变量、常量、其他类型的表达式或其他函数返回值
更重要的是,您的代码完成了它必须做的事情,并且您以一种有用的方式完成了它
这可能意味着在您的代码中,您的函数已经非常好了
<>但是请考虑一下,你可以重新使用普通的部件,比如这里用一个新的函数来显示。对于您的示例来说,这可能有点过头了,但只是为了展示图片
函数可以保留逻辑,因此不需要多次编写该部分。它还使用该函数减小了代码其他部分的大小。没有正确的方法来做到这一点
这个问题是关于风格和偏好的,你无法得到明确的答案。
只要使用你最喜欢的(当然,除非你是在团队中工作,在这种情况下,你应该调整团队的编码样式指南)。同样没有必要在这个表达式周围加上圆括号。乘以一个条件。。。哦,疼痛,剩下的我喜欢。