我有一个自定义函数,旨在在成功完成时返回某些值。简而言之,相关部分如下所示:
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'] 会遇到警告:非法字符串偏移。我究竟做错了什么?