Параметры функции постоянно смешиваются друг с другом [закрыто]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Параметры функции постоянно смешиваются друг с другом [закрыто]

Сообщение Anonymous »

Создайте веб-приложение, которое должно создавать IP-туннель для клиентов. Для этого мне нужно использовать библиотеку CULRL, чтобы я мог свободно читать и редактировать наш файл JSON с данными клиента.
Одна из функций, которую мне нужно создать, — это createTunnel. В этой функции я использую несколько параметров — 7, если быть точным. Хотя что-то не получилось. Я проверил эти переменные с помощью echo перед функцией (они глобальные), и значения верны. Затем я использовал ech с теми же переменными внутри функции. И вдруг значения перепутались.
так что:
$a = $c; $b = $e , $c = $d
и т.д...
фрагмент основного кода:

Код: Выделить всё

        echo "
checking values outside the function:
";
echo "rport token: $RPORT_TOKEN
";
echo "
tunel:
";
var_dump($tunnelInfo);
echo "

";
echo "
" . "api: " . "$RPORT_API" . "
";
echo "opts: " . "$RPORT_OPTS" . "
";
echo "q : " . "$_q" . "
";
echo "base: " . "$RPORT_BASE" . "
";
echo "admin: " . "$RPORT_ADMIN" . "
";
echo "token: " . "$RPORT_TOKEN" . "
";

$newTunnel = createTunnel ($tunnelInfo, $RPORT_BASE, $_q, $RPORT_API, $RPORT_ADMIN, $RPORT_TOKEN, $RPORT_OPTS);
echo "
" . "create Tunnel debug" . "
";
echo "
";
var_dump($newTunnel);
echo "";

}
В основном коде вывод правильный. $RPORT_ADMIN показывает правильное имя администратора, $RPORT_TOKEN выдает правильный пароль и т. д. Как вы можете видеть, значения проверяются перед функцией.
Вот как функция выглядит внутри функции:

Код: Выделить всё

function createTunnel($tunnelInfo, $RPORT_BASE, $_q, $RPORT_API, $RPORT_ADMIN, $RPORT_TOKEN, $RPORT_OPTS)

{

echo "
tunel:
";
var_dump($tunnelInfo);
echo "

";
echo "
" . "api: " . "$RPORT_API" . "
";
echo "opts: " . "$RPORT_OPTS" . "
";
echo "q : " . "$_q" . "
";
echo "base: " . "$RPORT_BASE" . "
";
echo "admin: " . "$RPORT_ADMIN" . "
";
echo "token: " . "$RPORT_TOKEN" . "
";
$tunnelInfo — это декодированная таблица JSON.
Вот, например:

Код: Выделить всё

echo "
" . "api: " . "$RPORT_API" . "
";
Вывод:

"api: $RPORT_BASE

"opts: $RPORT_ADMIN"

и т. д.
Когда я меняю порядок параметров в функции, т.е.:

Код: Выделить всё

function createTunnel($tunnelInfo, $RPORT_API, $$RPORT_BASE, $RPORT_ADMIN, $RPORT_OPTS, $RPORT_TOKEN, $RPORT_OPTS)
Значения снова смешаны, в разном порядке, но совершенно случайны. Никогда не ошибайтесь.

Я не заметил никакой закономерности.
Я ожидаю, что значения переменных будут такими, как я их объявил.
Значения переменных я нигде не менял. Как это возможно?

Подробнее здесь: https://stackoverflow.com/questions/790 ... each-other
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»