Php 函数内的赋值运算符(=)';s参数列表?

Php 函数内的赋值运算符(=)';s参数列表?,php,function,parameters,Php,Function,Parameters,我正在使用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(); }

我正在使用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;
}
/**
*更正数组中存储的变量。
*@param integer$位的掩码整数
*@return数组
*/
函数位掩码($mask=0){
如果(!是数字($mask)){
返回数组();
}
$return=array();
而($mask>0){

对于($i=0,$n=0;$i这意味着如果您像这样调用函数:

$a = bitMask();
然后$mask将设置为
0

这是在函数中为参数设置默认值的方式

例如:

function example($a=0){
    echo "a = $a"; 
}

example(10);
example();
输出:

a = 10
a = 0
如果
$a
未设置默认值,则调用类似
example()
的函数将发出警告


引用:(默认参数值)

如果未传递任何参数,这是$mask的默认值。这也可以防止在忽略参数时生成警告。

Michael的响应是正确的。另外,请注意赋值不会对修改的原始变量产生影响。下面是他的代码,还有一些赋值/回音请说明:

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