我有以下功能...
function myFunction($arg1 = '', arg2 = '') {
return 'My args: ' . $arg1 . ' & ' . $arg2;
}
。我用从 GET in 检索的数据调用...
$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
编辑2:再次测试代码,这是我的错字;在将 $arg 2 的值传递给函数之前,我正在重新分配 $arg 1 的值。我的坏。
你的函数不返回字符串,而是回显它,所以===
永远不会是真的
尝试
function myFunction($arg1 = '', arg2 = '') {
return 'My args: ' . $arg1 . ' & ' . $arg2;
}