2014-01-11 5 views
-1

У меня есть следующая функция ...Есть ли способ принудительного порядка параметров?

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, прежде чем передавать его функции. Виноват.

+0

вы можете показать ваш вывод? –

+1

Ваши предположения совершенно неверны, независимо от того, какое значение вы передадите для '$ arg1', оно ** будет передано **. '$ arg2' не будет« скользить »в' $ arg1'. Кроме того, не публикуйте «составленный» код, а затем ссылку на ваш реальный код, просто ** отправьте свой реальный код **. – meagar

+0

'arg2' никогда не считается' arg1'. См. Здесь несколько примеров: http://3v4l.org/AXvXb. У вас в вашем коде есть совершенно другая проблема. – jszobody

ответ

4

Ваша функция не возвращает строку, но эхо его, так что === никогда не будет истинным

попробовать

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

Я составил код, когда писал сообщение, вы можете считать эту опечатку. Я буду обновлять OP фактическим кодом. – Alxe

+0

в следующий раз напишите свой фактический код, пожалуйста, теперь просто гадать, что ваша проблема также в этом коде ..... Вы действительно протестировали, что ваша проблема находится в текущем коде? – Nanne

+0

Да, у меня есть, с 'эхом' как внутри, так и внутри функции. Проблема с изображением сохраняется. – Alxe

Смежные вопросы