每个Twig开发人员都应该能够回答的20个问题

在本文中, 我们想与你分享20个问题, 每个Twig开发人员都应该能够回答。你可以将其视为测验, 并且显然可以与Twig一起评估你的知识。开始之前, 请记住:

  • 有些问题有多个答案。
  • 这些问题仅与Twig有关, 而与Symfony这样的框架无关。
  • 你用14个正确答案(70%)来验证测试。
完成测试后, 你可以在此处找到答案。话虽如此, 让我们开始吧!
注意要进行诚实的测验, 请尝试进行测验而不寻找解决方案。请记住, 如果你不知道其中几个答案, 并不表示你对Twig不好!这只是意味着有些事情你甚至都不知道, 因此请确保继续使用官方文档学习Twig。
1.如何在Twig中声明变量?
  1. {%define myVariable =’ My Text’ %}
  2. {%set myVariable%}我的文字{%endset%}
  3. {%set myVariable =’ 我的文字’ %}
  4. {%set myVariable%} {{‘ My Text’ }} {%endset%}
  5. {%set myVariable =’ 我的文字’ , ‘ 其他文字’ %}
2.以下代码段的输出是什么?
{{ {name: "Xavier", lastName: "Nemo", first: false, address: "P Sherman, 42 Wallaby Way, Sydney"} | first }}

  1. Twig不存在过滤器” first”
  2. 错误:数组到字符串的转换
  3. 名称
  4. 泽维尔
  5. false
3. Twig的注释语法是什么?
  1. {{-评论文字-}}
  2. {[-评论文字-]}
  3. {{#评论文字#}}
  4. {#评论文字#}
  5. {[评论文字]}
4. Twig中的输出转义
  1. 默认情况下启用。
  2. 可以使用原始过滤器在某些变量中专门禁用。
  3. 默认情况下处于禁用状态。
  4. 是防止XSS攻击所必需的。
  5. Twig无法转义输出。
5. Twig是否在for循环的范围内创建一个特殊变量以获取有关当前迭代的信息?如果是这样, 它的名字是什么?
  1. Twig不提供这种功能。
  2. 周期
  3. forLoop
  4. 迭代
6.以下代码段的输出是什么?
{% verbatim %}< ul> {% for row in rows %}< li title="{{ rows.title }}"> {{ rows.text }}< /li> {% endfor %}< /ul> {% endverbatim %}

A.
< ul> < li title="Row 1 Title"> Row 1 Text< /li> < li title="Row 2 Title"> Row 2 Text< /li> < li title="Row 3 Title"> Row 3 Text< /li> < li title="Row 4 Title"> Row 4 Text< /li> < /ul>

B.
< ul> {% for row in rows %}< li title="{{ rows.title }}"> {{ rows.text }}< /li> {% endfor %}< /ul>

C.逐字块类型不存在。
D.变量行不存在。
7. Twig中不存在以下哪个默认过滤器?
  1. 逃生
  2. 加入
  3. 长度
  4. 分裂
  5. 较低的
8.以下代码段的输出是什么?
{% spaceless %}< divclass="welcome-alert"> < h1 > Welcome David !< /h1> < /div> {% endspaceless %}

  1. < div class =” welcome-alert” > < h1> 欢迎大卫!< / h1> < / div>
  2. 模板错误:无空格块期望正确识别HTML内容。
  3. < div class =” welcome-alert” > < h1> 欢迎大卫!< / h1> < / div>
  4. < div class =” welcome-alert” > < h1> 欢迎大卫!< / h1> < / div>
  5. < divclass =” welcome-alert” > < h1> 欢迎戴维!< / h1> < / div>
9.连接字符串的正确语法是什么?
  1. {{“ 名字” +” ” +” 姓氏” }}
  2. {{“ 名字” ^” 姓氏” }}
  3. {{“ 名字” ?” ” ?” 姓氏}}
  4. {{“ 名字” ” 姓氏” }}
  5. {{ “ 名字” 。 ” ” 。” 姓” }}
10.如何验证两个变量是否相同(重要的相同不相等)?
  1. {如果变量A ==变量B%, 则为%}
  2. {如果变量A ===变量B%, 则为%}
  3. {如果变量A> < 变量B%, 则为%}
  4. {如果变量A与变量B%相同, 则为%}
  5. {如果变量A与(变量B)相同, 则为%%}
11.默认情况下可以在Twig中使用相同的PHP常量吗?
  1. 不, 你需要创建一个自定义扩展。
  2. 是的, 用三括号和单引号将常数名称包装起来。
  3. 是的, 使用常量函数。
  4. 是的, 使用get_constant_value过滤器。
  5. 不, 不可能。
12.如何使用Twig从数组中打印随机值?
  1. {{random([1, 2, 3])}}
  2. {{[1, 2, 3] |随机}}
  3. {{randomize()}}
  4. {{[1, 2, 3] |随机}}
  5. 这不可能。
13.如何从以下键值数组中打印” a-b” 属性的值?
{% set MyVariable = {"a": 1, "b": 2, "c": 3, "a-b": 4}%}

  1. {{MyVariable(” a-b” )}}
  2. {{MyVariable [” a-b” ]}}
  3. {{attribute(MyVariable, ‘ a-b’ )}}
  4. {{MyVariable.a-b}}
  5. {{MyVariable.get(‘ a-b’ )}}
14.以下代码段的输出是什么?
{% with %}{% set MyVariable = 42 %}{% endwith %}{{ MyVariable }}

  1. Twig的运行时异常已被抛出。变量” MyVariable” 不存在。
  2. 42
  3. 82
  4. null
  5. 给定的Twig代码包含语法错误。未知的” with” 标签。
15. Twig中不存在以下哪个测试关键字?
  1. {%, 如果a可被(b)%整除}
  2. {%, 如果a为可迭代%}
  3. {%, 如果a为空%}
  4. {%, 如果a为奇数%}
  5. {%, 如果a是b的instanceof}
16.是否可以将现有块的内容打印两次?
  1. 是的, 将copy关键字附加到下一个块之前, 例如{%copy BlockName%}。
  2. 是的, 使用带有要复制的块名称的块方法作为参数, 例如{{block(” BlockName” )}}
  3. 是的, 只需声明两次该块即可。
  4. 是的, 使用clone关键字和带有块名称的打印语句, 例如{{clone BlockName}}
  5. 这不可能。
17.以下代码段的输出是什么?
{% set items = ['a', 'b', 'c', 'd', 'e', 'f', 'g', "h"] %}< table> {% for row in items|batch(4) %}< tr> {%- for column in row -%}< td> {{ column }}< /td> {%- endfor -%}< /tr> {% endfor %}< /table>

A.
< table> < tr> < td> a< /td> < td> b< /td> < td> c< /td> < td> d< /td> < /tr> < tr> < td> e< /td> < td> f< /td> < td> g< /td> < td> h< /td> < /tr> < /table>

B.
< table> < tr> < td> a< /td> < td> b< /td> < td> c< /td> < td> d< /td> < /tr> < tr> < td> e< /td> < td> f< /td> < td> g< /td> < td> h< /td> < /tr> < /table>

C.过滤器” 批次” 在Twig不存在。
D. Batch过滤器期望一个字符串作为第一个参数, 给定整数。
18.以下代码段的输出是什么?
{{ 12.4 // 2 }}

  1. 给定的Twig代码包含语法错误。意外的字符” /” 。
  2. 6.2
  3. 6
  4. 3.1
  5. 注意:数组到字符串的转换。
19.以下哪个代码片段允许打印用逗号分隔的字母?
A.
{%- for i in range("a", "z") -%}{{ i }}, {%- endfor -%}

B.
{%- for i in (from "a" to "z") -%}{{ i }}, {%- endfor -%}

【每个Twig开发人员都应该能够回答的20个问题】C.
{%- for i in range(a, z) -%}{{ i }}, {%- endfor -%}

D.
{%- for i in "a".."z" -%}{{ i }}, {%- endfor -%}

E.
{%- for i in "a" to "z" -%}{{ i }}, {%- endfor -%}

20.以下代码段的输出是什么?
{{ app.username|default('User is not logged in') }}

  1. 用户未登录
  2. 变量” app” 不存在。
  3. 数组的键” 用户名” 不存在。
  4. Twig中不存在” 默认” 过滤器
  5. 阵列的键” 用户未登录” 不存在。
恭喜, 你已完成测试!如果你认为自己知道所有答案, 请在此处将你的结果与正确答案和对它们的解释进行比较。
编码愉快!

    推荐阅读