正常に完了したときに特定の値を返すカスタム関数があります。つまり、関連するセクションは次のようになります。
function register($email, $username, $password)
{
....
$return = array();
$return['code'] = 4;
$return['email'] = $email;
var_dump($return);
echo "<h1>SUCCESS</h1>";
return $return;
}
関数が実際にこの段階に達したことを確認できます。投稿されたコードのすぐ上に、データベースに行を正常に追加する SQL クエリがあり、「SUCCESS」メッセージが投稿されていることもわかります。
関数内の var_dump は次を返します。
array (size=2)
'code' => int 4
'email' => string 'test@test.com' (length=13)
ここまでは順調ですね。ただし、実際にこの関数を呼び出すと、$return は空になります。たとえば、これを行うと:
register($email, $username, $password);
var_dump($return);
echo "<h1>Return code & email: $return & ".$return['code']." ".$return['email']."</h1>";
関数は正常に実行され、新しいユーザーが登録され、「SUCCESS」と表示されますが、$return 配列が返されません。var_dump はこれを返します:
string '' (length=0)
また、$return['code'] および $return['email'] への呼び出しは、警告: 無効な文字列オフセットで満たされます。私は何を間違っていますか?