Php 检查是否设置了功能参数
我有一个加载蝴蝶图像的函数 有3个可能的参数:颜色、角度和位置 最后一个始终是显式设置的,但前2个(如果未设置)是 用随机数确定的。这意味着除非特别设置,否则该函数将始终加载一只漂亮的随机颜色和角度的蝴蝶 我有这个Php 检查是否设置了功能参数,php,function,random,parameters,Php,Function,Random,Parameters,我有一个加载蝴蝶图像的函数 有3个可能的参数:颜色、角度和位置 最后一个始终是显式设置的,但前2个(如果未设置)是 用随机数确定的。这意味着除非特别设置,否则该函数将始终加载一只漂亮的随机颜色和角度的蝴蝶 我有这个 function randombf ($randbf,$randangle,$position) { $randbf = rand(1,4); $randangle = rand(1,4); echo '<div class="bf '.$positio
function randombf ($randbf,$randangle,$position) {
$randbf = rand(1,4);
$randangle = rand(1,4);
echo '<div class="bf '.$position.'" style="background:url(\'images/bf_'.$randangle.'_'.$randbf.'.png\');"></div>';
}
但如果我通过了,那就不行了
randombf('1','2','whatever')
它执行随机操作
我做错了什么?您应该更改参数的顺序。将位置放在第一位,因为它将始终被指定。如果这样做,您将能够编写
randombf(12)
或randombf(12,1,2)
甚至randombf(12,1)
省略的参数将设置为null
(如果需要,您可以指定任何其他内容,但只能指定标量值),因此您只需检查var是否为null()
函数randombf($position,$randbf=null,$randangle=null){
如果(为空($randbf))$randbf=rand(1,4);
如果(为空($randangle))$randangle=rand(1,4);
回声';
}
让我将@Matt Ball发布的链接合并到我的答案中:
关于输入参数的顺序以及第二个和第三个参数的可选性,@bazmegakapa所说的是正确的。但是他没有指出关于代码的其他一些重要的事情
function getRandomButterfly ($position, $butterfly = null, $angle = null)
{
if (is_null($butterfly)
{
$randomButterfly = rand(1, 4);
}
else
{
$randomButterfly = $butterfly;
}
if (is_null($angle)
{
$randomAngle = rand(1, 4);
}
else
{
$randomAngle = $angle;
}
$markup =
'<div class="bf '.$position.'" style="background:url(\'images/bf_'.$randomAngle.'_'.$randomButterfly.'.png\');"></div>';
return $markup;
}
$markup = getRandomButterfly(3);
echo $markup;
函数getRandomButterfly($position,$butterfly=null,$angle=null)
{
if(is_null($butterfly)
{
$randomButterfly=兰特(1,4);
}
其他的
{
$trandombutterfly=$butterfly;
}
如果(为空($angle)
{
$randomAngle=兰特(1,4);
}
其他的
{
$randomAngle=$angle;
}
$markup=
'';
返回$markup;
}
$markup=getRandomButterfly(3);
echo$加价;
+1好的方面。通常我对覆盖这么小的函数的输入变量不是很严格,但这只是我自己。是的……这是可以讨论的。函数已经准备好变得更复杂了。每个if都缺少右括号
function randombf ($position, $randbf = null, $randangle = null) {
if (is_null($randbf)) $randbf = rand(1,4);
if (is_null($randangle)) $randangle = rand(1,4);
echo '<div class="bf '.$position.'" style="background:url(\'images/bf_'.$randangle.'_'.$randbf.'.png\');"></div>';
}
function getRandomButterfly ($position, $butterfly = null, $angle = null)
{
if (is_null($butterfly)
{
$randomButterfly = rand(1, 4);
}
else
{
$randomButterfly = $butterfly;
}
if (is_null($angle)
{
$randomAngle = rand(1, 4);
}
else
{
$randomAngle = $angle;
}
$markup =
'<div class="bf '.$position.'" style="background:url(\'images/bf_'.$randomAngle.'_'.$randomButterfly.'.png\');"></div>';
return $markup;
}
$markup = getRandomButterfly(3);
echo $markup;