PHP: возвращать значения из foreach внутри пользовательской функции - PullRequest
0 голосов
/ 07 февраля 2012

Я написал цикл foreach и сохранил несколько строк кода.Он в основном берет все переменные $ _POST и использует их имена для создания обычных переменных php.

foreach(array_keys($_POST) as $str)
{
${$str}=mysqli_real_escape_string($connection,trim($_POST["$str"]));
}

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

Теперь я хотел поставитьэто внутри пользовательской функции, поэтому я изменил ее так:

function createvariablesfromPOST()
{
    foreach(array_keys($_POST) as $str)
    {
    ${$str}=mysqli_real_escape_string($GLOBALS["connection"],trim($_POST["$str"]));
    }
    return //something;
}

Очевидно, она не работает, потому что я не знаю, как заставить эту функцию возвращать // что-то (что бы это ни было) в глобальную область видимости,Что здесь должно быть сделано?

Я не могу заставить цикл foreach возвращать что-либо, пока цикл не завершится.Разве это не так?

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 07 февраля 2012

Назначение произвольных переменных, предоставленных пользователем, может быть ОЧЕНЬ ОПАСНЫМ!Они могут перезаписать любую из ваших переменных.

Причина, по которой это не работает, заключается в том, что они не находятся в глобальной области действия .Вам нужно будет сделать что-то вроде $GLOBALS[$variable] = 'something';

Вместо этого вам следует присвоить переменные массиву, чтобы они были изолированы от глобальной области видимости.то есть $input[$$var] = $escaped_value;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...