我正在使用PHPBuilder.com中的以下代码来处理我网站上的用户权限:
/**
* Correct the variables stored in array.
* @param integer $mask Integer of the bit
* @return array
*/
function bitMask($mask = 0) {
if(!is_numeric($mask)) {
return array();
}
$return = array();
while ($mask > 0) {
for($i = 0, $n = 0; $i <= $mask; $i = 1 * pow(2, $n), $n++) {
$end = $i;
}
$return[] = $end;
$mask = $mask - $end;
}
sort($return);
return $return;
}
我对函数参数列表中($mask = 0)
的“= 0”部分感到有些困惑。那是做什么的?
答案 0 :(得分:8)
这意味着如果你调用这样的函数:
$a = bitMask();
然后$ mask将设置为0
。
如何在函数中为参数设置默认值。
示例:
function example($a=0){
echo "a = $a";
}
example(10);
example();
输出:
a = 10
a = 0
如果$a
没有设置默认值,那么调用example()
之类的函数会发出警告。
reference:http://php.net/manual/en/functions.arguments.php(默认参数值)
答案 1 :(得分:3)
如果没有传递参数,则这是$ mask的默认值。这也可以防止在省略参数时生成警告。
答案 2 :(得分:0)
function example($a=0){
echo "Entering function: a = $a\n";
$a = 3;
echo "End of function: a = $a\n";
}
$a = 7;
example(10);
echo "Outside of Function: a = $a\n";
输出
Entering function: a = 10
End of function: a = 3
Outside of Function: a = 7