我有以下功能...有沒有辦法強制參數順序?
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