значения массива работают не так, как ожидалось

#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]);
  

это функция только с одним параметром.