Laravel Blade @php指令失效求助:环境升级后无法正常解析
Blade @php括号式指令失效问题解答
你好!针对你遇到的这个问题,我可以明确告诉你:这不是Bug,而是Laravel 5.6版本开始,Blade的@php()括号式语法已经被官方移除了。
给你梳理下前后的语法变化:
- 在Laravel 5.5及更早版本中,Blade支持两种
@php使用方式:- 括号式快捷写法:
@php($variable = value) - 区块式写法:
@php ... @endphp
- 括号式快捷写法:
- 从Laravel 5.6开始,官方为了统一Blade指令的语法规范,移除了括号式的
@php写法,只保留区块式的使用方式。这就导致你在5.6.12版本项目里使用@php($x = 5)时,Blade解析器无法识别这个指令,直接把它当成普通文本输出,所以才会出现你看到的浏览器显示结果。
正确的写法示例
现在在Laravel 5.6及以后版本中,执行PHP代码只能用区块式写法,哪怕是单行代码:
@php $x = 5; @endphp @php $y = 2; @endphp
更高效的方式是把多个变量定义放在同一个@php区块里:
@php $x = 5; $y = 2; @endphp
这样修改后,Blade就能正确解析并执行这些PHP代码了。
内容的提问来源于stack exchange,提问作者stackunderflow
相关产品推荐
相关产品推荐

