2012-02-26 64 views
-1
function test($param=null) { 
    if ($param===null) 
     ..... 
} 

由于$ param在函数头设置为null,为什么即使打扰测试$ param === null?如果有一个情况$参数不会为空?PHP函数的参数不清楚

+0

参数有时会通过函数调用传递。去搞清楚 – 2012-02-26 17:09:19

回答

2

由于$ param在函数头设置为null,为什么即使打扰测试 if $ param === null?如果有一个情况下$参数不会为空?

也就是说可选参数,因为你定义的null到它的默认值。

至于为什么要检查它,你想确保一个参数的确是不是null

让我们假设你想echo它:

function test($param=null) { 
    echo $param; 
} 

当你调用函数,不会有事的,你不希望这样做,对吧。出于这个原因,你想确保参数的值不为null,以便你可以操纵它,但是你喜欢。

测试:

function test($param=null) { 
    echo $param; 
} 

test(); // no output 
test('hello there'); // output: hello there 
1

$param如果没有值传递给函数只会是空的。这是optional parameters的一个例子。

你可以通过传递一个值

test(10); //$param inside the method will be 10; 
test(); //$param will be null 
2

这是一个可选/ default argument调用该函数。

如果你调用该函数,那么你可以把它的两种方法之一:

test($value); 

test(); 

在第一种情况下,$param持有$value值。在第二种情况下,$param总是null

0

$ param = null只是一个默认变量,当用变量调用该函数时会被覆盖。

如果你调用使用

$helloworld = test('notnull'); 

然后$ PARAM将在功能上等效 'NOTNULL' 的功能。

0

案例$ PARAM就不会是空:

test("ok"); 

在这种情况下,$ PARAM = “OK”。