У меня есть пользовательская функция, которая предназначена для возврата определенных значений при успешном завершении. Короче говоря, соответствующий раздел выглядит следующим образом:Значение переменной возвращаемого значения функции возврата
function register($email, $username, $password)
{
....
$return = array();
$return['code'] = 4;
$return['email'] = $email;
var_dump($return);
echo "<h1>SUCCESS</h1>";
return $return;
}
Я могу подтвердить функцию на самом деле достичь этой стадии, потому что как раз над кодом публикуемым является SQL-запрос, который успешно добавляет строку в базу данных, и я могу также см. сообщение «УСПЕХ».
var_dump внутри функции возвращает следующее:
array (size=2)
'code' => int 4
'email' => string '[email protected]' (length=13)
До сих пор, так хорошо. Однако, если я затем перейду и на самом деле вызову эту функцию, $ return будет пустым. Например, если я делаю это:
register($email, $username, $password);
var_dump($return);
echo "<h1>Return code & email: $return & ".$return['code']." ".$return['email']."</h1>";
функция выполняется успешно, новый пользователь зарегистрирован, и я вижу «УСПЕХ», но я не получаю $ возврата возвращаемого массива. var_dump возвращает это:
string '' (length=0)
И призывает к $ вернуться [ 'код'] и $ возвращение [ 'электронная почта'] выполнены с предупреждением: Illegal строка смещения. Что я делаю не так?
Ваш метод вызова функции неверна , сделайте это, как любой из трех ответов (Мэтью Мак правит, Тим Хельге или Дом) – Zeddy