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



我有以下功能...

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;
}

最新更新