我有以下功能......
function myFunction($arg1 = '', arg2 = '') {
return 'My args: ' . $arg1 . ' & ' . $arg2;
}
...我用GET中的数据调用......
$arg1 = retrieve($_GET, 'arg1'); // custom function
$arg2 = retrieve($_GET, 'arg2'); // retrieves array value or empty string
$result = myFunction($arg1, $arg2);
......但......
echo ($result === 'My args: ' . $arg1 . ' & ' . $arg2); // Why is this false?
鉴于arg1
导致空字符串,但arg2
没有,为什么arg2
的值一旦传递给函数就会被视为arg1
?
我是PHP的新手,我最习惯使用Java,可选参数的引入加上范例混合等让我感到困惑。
TLDR; 为arg1
myFunction('', $arg2);
不为空
编辑:已发布的代码已编制完成;实际代码可以在这里找到 - > http://pastie.org/8623944#7
EDIT2:再次测试代码,这是我的错字;在将$ arg1传递给函数之前,我将$ arg1的值重新分配给它。我的坏。
答案 0 :(得分:4)
你的函数没有返回字符串,但回应它,所以===
永远不会是真的
尝试
function myFunction($arg1 = '', arg2 = '') {
return 'My args: ' . $arg1 . ' & ' . $arg2;
}