Laravel 5.4 中的以下示例代码有什么区别

What is the difference between the below sample codes in Laravel 5.4

第二个下面的两个示例代码有什么区别returns一个错误我不知道为什么

@if ( auth()->check() )
Welcome  {{ Auth::user()->name }}

还有这个

@if ( {{auth::check() }} )
Welcome  {{ Auth::user()->name }}

两者都在 blade 文件中。请让我们讨论这个以便更好地理解。也请指出在这两种情况下哪个更好用

你不应该这样做:

@if ( {{auth::check() }} )

它会给你一个错误。这样做几乎是一样的:

if (echo(auth()->check()))

此代码:

{{ auth()->check() }}

将转换成这个香草 PHP 代码:

<?php echo e(auth()->check()); ?>

其中 e() 是 Laravel 助手。

https://laravel.com/docs/5.5/blade#displaying-data

它们不一样,@if ( auth()->check() ) 将检查用户是否已通过身份验证。 而另一个 @if ( {{auth::check() }} ) 就像@Alexey 所说的那样,将被转换为 <?php echo e(auth()->check()); ?> 并且当然 return 在您的情况下会出错