#php
#php
Вопрос:
У меня есть функция soap, которая ожидает 3 параметра, которые должны быть переданы в виде строк с кавычками.
function('id','username','password');
и в другой руке у меня есть массив, который содержит :
[0] = > "'id','username','password'"
[1] = > "'id','username','password'"
....
когда я повторяю $array [0], выводятся ‘id’, ‘username’, ‘password’, и когда я использую function('id','username','password');
, проблем нет, но когда я использую function($array[0]);
, это не сработает.
я протестировал свой массив с помощью echo, die, print_r … результат такой же, как ожидает функция!!!!
любая помощь?
спасибо ; )
Комментарии:
1. Существует разница между передачей трех разных параметров или одной строки… PHP не преобразует строку волшебным образом в три параметра, независимо от содержимого строки.
2. почему вы не меняете способ вызова функции и не делаете это правильно с сигнатурой функции??
Ответ №1:
Просто потому, что это не может сработать. Если у вас есть функция, которой требуется 3 параметра, вы не можете передать ни одного параметра. Также, если это массив, содержащий 3 необходимых вам параметра, функция по-прежнему хочет и нуждается в 3 параметрах. Таким образом, если вы дадите функции массив, она будет использовать только массив в качестве первого (так что у вас будет неожиданное поведение) и примет второй и третий значения как NULL.
Это правда, что php немного волшебный, но он не может творить чудеса.
Ответ №2:
Вам нужно изменить подпись вашей функции.
function('id','username','password');
это функция с тремя параметрами.
function($array[0]);
это функция только с одним параметром.