我有以下功能...有没有办法强制参数顺序?
function myFunction($arg1 = '', arg2 = '') {
return 'My args: ' . $arg1 . ' & ' . $arg2;
}
...这是我从拿到检索的数据调用...
$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
o它已被传递给函数?我是PHP的新手,我最习惯于Java,可选参数的引入以及范式的混合等让我感到困惑。
TLDR;为什么当称为myFunction('', $arg2);
编辑为arg1
不为空:发布代码是虚构的;实际代码可以在这里找到 - >http://pastie.org/8623944#7
EDIT2:再次测试代码,这是我的一个错字;我将$ arg1作为$ arg2的值重新赋值给函数。我的错。
? –
你的假设是完全错误的,无论你为'$ arg1'传递什么值,它**都会被传递**。 '$ arg2'不会“滑过”到'$ arg1'中。此外,不要发布“编造”的代码,然后链接到你的真实代码,只是**发布你的真实代码**。 – meagar
'arg2'永远不会被认为是'arg1'。看到这里的一些例子:http://3v4l.org/AXvXb。你的代码中有一个完全不同的问题。 – jszobody