You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel多变量传递报错:Parse error: unexpected 'return' (T_RETURN)

解决Laravel视图传多变量时的语法错误问题

嘿,别着急,我来帮你排查这个问题~你遇到的Parse error: syntax error, unexpected 'return' (T_RETURN)其实不是链式调用withXXX()的问题,大概率是在return语句之前的代码里有语法疏漏,比如某个变量定义的末尾漏写了分号,或者括号/引号没闭合,导致PHP解析器混乱,才会把return当成意外的语法元素。

先确认:链式传参本身是合法的

你写的这段链式调用代码其实是没问题的:

return view('pages.about')->withFullName($fullname)->withEmail($email);

只要前面的变量定义正确,比如:

public function showAbout()
{
    $fullname = "你的名字";
    $email = "your@email.com";
    return view('pages.about')->withFullName($fullname)->withEmail($email);
}

这种写法是完全可以正常运行的,$fullname和$email都能传递到视图里。

排查重点:检查return之前的代码

你可以回头看看return语句上面的代码,有没有类似这种错误:

// 错误示例:变量定义末尾漏了分号!
$fullname = "张三"
$email = "zhangsan@example.com";
return view('pages.about')->withFullName($fullname)->withEmail($email);

这种漏写分号的情况会让PHP把下一行的代码当成上一行的延续,解析到return时就会触发语法错误。

更推荐的多变量传参方式

其实Laravel还有更简洁清晰的传参方式,比链式调用更易读,也不容易出错:

  1. 直接传递数组
return view('pages.about', [
    'fullName' => $fullname,
    'email' => $email
]);
  1. 使用compact()函数(当变量名和视图里的键名一致时)
// 这里变量名$fullname和$email要和数组键名一致
return view('pages.about', compact('fullname', 'email'));

这两种方式都能同时传递多个变量,而且代码更整洁,也能避免链式调用可能带来的视觉疲劳。

内容的提问来源于stack exchange,提问作者user2963379

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:56:00