php函数参数var,reset参数

时间:2014-01-26 22:34:25

标签: php function arguments var

我创建了一个php函数,我想清除/重置函数的参数。

例如我在index.php中声明了两次这个函数:

grid_init($type='portfolio',$postNb=4,$rowNb=2);
grid_init($type='post',$postNb,$rowNb);

function grid_init($type,$postNb,$rowNb) {
?>

<div class="container" data-type="<?php echo $type; ?>" data-postNb="<?php echo $rowNb; ?>" data-rowNb="<?php echo $rowNb; ?>">
some stuff.....
</div>

<?php
}

如果我没有在第二个函数中指定我的参数(在上面的例子$postNb $rowNb中),这些变量将采用前一个函数($postNb=4,$rowNb=2)中声明的前一个参数的值。 ..

如何在同一文件中声明的每个函数之间重置/清除函数中的参数?

2 个答案:

答案 0 :(得分:1)

要使函数具有默认参数,它就像:

function grid_init($type, $postNb = 2, $rowNb = 4){
  echo "<div class='container' data-type='$type' data-postNb='$rowNb' data-rowNb='$rowNb'>".
  "some stuff.....".
  '</div>';
}

执行如下:

grid_init('whatever'); // will assume $postNb = 2 and $rowNb = 4;
grid_init('some_data_type', 42, 11); // overwrite your defaults

答案 1 :(得分:1)

您似乎无法调用函数。

将您的来电更改为

grid_init('portfolio',4,2);
grid_init('post','',''); // or use '' as default

a)你可能已经声明了这样的函数

function grid_init($type, $postNb, $rowNb)
{
   // do stuff on $tyoe, $postNb, $rowNb
}

b)您可以多次调用该函数,每次都使用新参数

grid_init('post', 5, 4);
grid_init('somewhere', 1, 2);

函数不记忆先前调用的值。 如果你想要,那么将它们从该函数中保存到某个地方。

c)您可以在函数上使用默认参数

默认参数总是在函数声明中排在最后。

function grid_init($type, $postNb = 2, $rowNb = 2)
{
    // do stuff on $tyoe, $postNb, $rowNb
}

称之为

grid_init('somewhere');

现在postNb,rowNb未设置,但使用了声明中的默认值。

d)保持参数数量低!