У меня есть следующая функция ...Есть ли способ принудительного порядка параметров?
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
о nce он передан функции?
Я новичок в PHP, я больше всего привык к Java, а введение необязательных параметров плюс сочетание парадигм и т. Д. Меня смущает.
TLDR;Почему arg1
не пуст, когда называется myFunction('', $arg2);
EDIT: Добавлено код надуманного; фактический код можно найти здесь ->http://pastie.org/8623944#7
EDIT2: Тестирование еще раз, это была опечатка с моей стороны; Я переназначил $ arg1 значение $ arg2, прежде чем передавать его функции. Виноват.
вы можете показать ваш вывод? –
Ваши предположения совершенно неверны, независимо от того, какое значение вы передадите для '$ arg1', оно ** будет передано **. '$ arg2' не будет« скользить »в' $ arg1'. Кроме того, не публикуйте «составленный» код, а затем ссылку на ваш реальный код, просто ** отправьте свой реальный код **. – meagar
'arg2' никогда не считается' arg1'. См. Здесь несколько примеров: http://3v4l.org/AXvXb. У вас в вашем коде есть совершенно другая проблема. – jszobody