【问题标题】:PHP what is the difference between { } and {{ }}PHP { } 和 {{ }} 有什么区别
【发布时间】:2017-01-10 10:48:51
【问题描述】:

我正在使用 PHP Laravel 框架,我遇到了一些在 html 代码中使用 {{ }} 的代码示例,如下所示:

<link rel="stylesheet" href=" {{ URL::to('css/app.css') }} ">

我的结论是 {{ }} 用于在 HTML 中编写非 HTML 代码,对吗?

那么 { } 的用途是什么?

感谢您的回答。

【问题讨论】:

  • 特别是 Blade 模板/Laravel 问题而不是 PHP ......它们是 Blade 模板系统中显示值的占位符,一个用于未转义值,另一个用于转义值(尽管这是 Laravel 4 ,而不是 5)
  • 如果你想学习 PHP,你不应该使用框架。你没有意识到普通 PHP 和像 Laravel 这样的框架在幕后所做的区别。 {{ }} 用于 Laravel 的模板引擎刀片。文档位于laravel.com

标签: php html laravel laravel-5.3


【解决方案1】:
  1. {} 是 PHP 代码语法的一部分。它用于函数、代码块和对象中。
  2. {{ }} 它是 Laravel 的 Blade 模板语法的一部分,与 Laravel 项目中的某些内容相呼应。

【讨论】:

    【解决方案2】:

    这不是 php,而是 laravel 捆绑的 blade template system 的语法。

    简而言之,{{$aPhpVariable}} 基本上编译成&lt;?= htmlentities($aPhpVariable) ?&gt;(甚至&lt;?php echo htmlentities($aPhpVariable); ?&gt;),但据我所知,没有单括号({})语法。

    您也可以在刀片模板中使用普通的 php 代码,或者将其视为普通的 html 页面,但它确实有很多东西可以让构建视图变得更加容易。
    前往docs 了解有关刀片的更多信息!

    【讨论】:

      【解决方案3】:

      转义数据使用

      {{ $data }} 
      

      如果您不希望数据被转义,请使用:

      {!! $data !!}
      

      【讨论】:

        【解决方案4】:

        Blade 中没有{ }{{ }} 显示转义数据,{!! !!} 显示未转义数据。

        默认情况下,Blade {{ }} 语句会自动通过 PHP 的 htmlentities 函数可以防止 XSS 攻击。如果你不想 您的数据要转义,您可以使用以下语法:

        Hello, {!! $name !!}.
        

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

        【讨论】:

          猜你喜欢
          • 2018-11-18
          • 1970-01-01
          • 2016-03-20
          • 2012-03-08
          • 2011-03-10
          • 2022-12-13
          • 2018-12-20
          • 2011-06-01
          • 2011-07-27
          相关资源
          最近更新 更多