在本文中, 我们想与你分享20个问题, 每个Twig开发人员都应该能够回答。你可以将其视为测验, 并且显然可以与Twig一起评估你的知识。开始之前, 请记住:
- 有些问题有多个答案。
- 这些问题仅与Twig有关, 而与Symfony这样的框架无关。
- 你用14个正确答案(70%)来验证测试。
完成测试后, 你可以在此处找到答案。话虽如此, 让我们开始吧!
注意
要进行诚实的测验, 请尝试进行测验而不寻找解决方案。请记住, 如果你不知道其中几个答案, 并不表示你对Twig不好!这只是意味着有些事情你甚至都不知道, 因此请确保继续使用官方文档学习Twig。
1.如何在Twig中声明变量?
- {%define myVariable =’My Text’%}
- {%set myVariable%}我的文字{%endset%}
- {%set myVariable =’我的文字’%}
- {%set myVariable%} {{‘My Text’}} {%endset%}
- {%set myVariable =’我的文字’, ‘其他文字’%}
2.以下代码段的输出是什么?
{{ {name: "Xavier", lastName: "Nemo", first: false, address: "P Sherman, 42 Wallaby Way, Sydney"} | first }}
- Twig不存在过滤器” first”
- 错误:数组到字符串的转换
- 名称
- 泽维尔
- false
3. Twig的注释语法是什么?
- {{-评论文字-}}
- {[-评论文字-]}
- {{#评论文字#}}
- {#评论文字#}
- {[评论文字]}
4. Twig中的输出转义
- 默认情况下启用。
- 可以使用原始过滤器在某些变量中专门禁用。
- 默认情况下处于禁用状态。
- 是防止XSS攻击所必需的。
- Twig无法转义输出。
5. Twig是否在for循环的范围内创建一个特殊变量以获取有关当前迭代的信息?如果是这样, 它的名字是什么?
- Twig不提供这种功能。
- 周期
- 环
- forLoop
- 迭代
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中不存在以下哪个默认过滤器?
- 逃生
- 加入
- 长度
- 分裂
- 较低的
8.以下代码段的输出是什么?
{% spaceless %}
<div class="welcome-alert">
<h1 >Welcome David !</h1>
</div>
{% endspaceless %}
- <div class =” welcome-alert”> <h1>欢迎大卫!</ h1> </ div>
- 模板错误:无空格块期望正确识别HTML内容。
- <div class =” welcome-alert”> <h1>欢迎大卫!</ h1> </ div>
- <div class =” welcome-alert”> <h1>欢迎大卫!</ h1> </ div>
- <divclass =” welcome-alert”> <h1>欢迎戴维!</ h1> </ div>
9.连接字符串的正确语法是什么?
- {{“名字” +”” +”姓氏”}}
- {{“名字” ^”姓氏”}}
- {{“名字”〜””〜”姓氏}}
- {{“名字””姓氏”}}
- {{ “名字”。 ” ” 。”姓” }}
10.如何验证两个变量是否相同(重要的相同不相等)?
- {如果变量A ==变量B%, 则为%}
- {如果变量A ===变量B%, 则为%}
- {如果变量A> <变量B%, 则为%}
- {如果变量A与变量B%相同, 则为%}
- {如果变量A与(变量B)相同, 则为%%}
11.默认情况下可以在Twig中使用相同的PHP常量吗?
- 不, 你需要创建一个自定义扩展。
- 是的, 用三括号和单引号将常数名称包装起来。
- 是的, 使用常量函数。
- 是的, 使用get_constant_value过滤器。
- 不, 不可能。
12.如何使用Twig从数组中打印随机值?
- {{random([1, 2, 3])}}
- {{[1, 2, 3] |随机}}
- {{randomize()}}
- {{[1, 2, 3] |随机}}
- 这不可能。
13.如何从以下键值数组中打印” a-b”属性的值?
{% set MyVariable = {
"a": 1, "b": 2, "c": 3, "a-b": 4
}%}
- {{MyVariable(” a-b”)}}
- {{MyVariable [” a-b”]}}
- {{attribute(MyVariable, ‘a-b’)}}
- {{MyVariable.a-b}}
- {{MyVariable.get(‘a-b’)}}
14.以下代码段的输出是什么?
{% with %}
{% set MyVariable = 42 %}
{% endwith %}
{{ MyVariable }}
- Twig的运行时异常已被抛出。变量” MyVariable”不存在。
- 42
- 82
- null
- 给定的Twig代码包含语法错误。未知的” with”标签。
15. Twig中不存在以下哪个测试关键字?
- {%, 如果a可被(b)%整除}
- {%, 如果a为可迭代%}
- {%, 如果a为空%}
- {%, 如果a为奇数%}
- {%, 如果a是b的instanceof}
16.是否可以将现有块的内容打印两次?
- 是的, 将copy关键字附加到下一个块之前, 例如{%copy BlockName%}。
- 是的, 使用带有要复制的块名称的块方法作为参数, 例如{{block(” BlockName”)}}
- 是的, 只需声明两次该块即可。
- 是的, 使用clone关键字和带有块名称的打印语句, 例如{{clone BlockName}}
- 这不可能。
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 }}
- 给定的Twig代码包含语法错误。意外的字符” /”。
- 6.2
- 6
- 3.1
- 注意:数组到字符串的转换。
19.以下哪个代码片段允许打印用逗号分隔的字母?
A.
{%- for i in range("a", "z") -%}
{{ i }}, {%- endfor -%}
B.
{%- for i in (from "a" to "z") -%}
{{ i }}, {%- endfor -%}
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') }}
- 用户未登录
- 变量” app”不存在。
- 数组的键”用户名”不存在。
- Twig中不存在”默认”过滤器
- 阵列的键”用户未登录”不存在。
恭喜, 你已完成测试!如果你认为自己知道所有答案, 请在此处将你的结果与正确答案和对它们的解释进行比较。
编码愉快!
评论前必须登录!
注册