有没有办法强制执行参数顺序?

时间:2014-01-11 16:18:59

标签: php

我有以下功能......

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的值重新分配给它。我的坏。

1 个答案:

答案 0 :(得分:4)

你的函数没有返回字符串,但回应它,所以===永远不会是真的

尝试

function myFunction($arg1 = '', arg2 = '') {
   return 'My args: ' . $arg1 . ' & ' . $arg2;
}