在本文中, 我们想与你分享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 =’ 我的文字’ , ‘ 其他文字’ %}
{{ {name: "Xavier", lastName: "Nemo", first: false, address: "P Sherman, 42 Wallaby Way, Sydney"} | first }}
- Twig不存在过滤器” first”
- 错误:数组到字符串的转换
- 名称
- 泽维尔
- false
- {{-评论文字-}}
- {[-评论文字-]}
- {{#评论文字#}}
- {#评论文字#}
- {[评论文字]}
- 默认情况下启用。
- 可以使用原始过滤器在某些变量中专门禁用。
- 默认情况下处于禁用状态。
- 是防止XSS攻击所必需的。
- Twig无法转义输出。
- Twig不提供这种功能。
- 周期
- 环
- forLoop
- 迭代
{% 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中不存在以下哪个默认过滤器?
- 逃生
- 加入
- 长度
- 分裂
- 较低的
{% spaceless %}<
divclass="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>
- {{“ 名字” +” ” +” 姓氏” }}
- {{“ 名字” ^” 姓氏” }}
- {{“ 名字” ?” ” ?” 姓氏}}
- {{“ 名字” ” 姓氏” }}
- {{ “ 名字” 。 ” ” 。” 姓” }}
- {如果变量A ==变量B%, 则为%}
- {如果变量A ===变量B%, 则为%}
- {如果变量A> < 变量B%, 则为%}
- {如果变量A与变量B%相同, 则为%}
- {如果变量A与(变量B)相同, 则为%%}
- 不, 你需要创建一个自定义扩展。
- 是的, 用三括号和单引号将常数名称包装起来。
- 是的, 使用常量函数。
- 是的, 使用get_constant_value过滤器。
- 不, 不可能。
- {{random([1, 2, 3])}}
- {{[1, 2, 3] |随机}}
- {{randomize()}}
- {{[1, 2, 3] |随机}}
- 这不可能。
{% 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’ )}}
{% with %}{% set MyVariable = 42 %}{% endwith %}{{ MyVariable }}
- Twig的运行时异常已被抛出。变量” MyVariable” 不存在。
- 42
- 82
- null
- 给定的Twig代码包含语法错误。未知的” with” 标签。
- {%, 如果a可被(b)%整除}
- {%, 如果a为可迭代%}
- {%, 如果a为空%}
- {%, 如果a为奇数%}
- {%, 如果a是b的instanceof}
- 是的, 将copy关键字附加到下一个块之前, 例如{%copy BlockName%}。
- 是的, 使用带有要复制的块名称的块方法作为参数, 例如{{block(” BlockName” )}}
- 是的, 只需声明两次该块即可。
- 是的, 使用clone关键字和带有块名称的打印语句, 例如{{clone BlockName}}
- 这不可能。
{% 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
- 注意:数组到字符串的转换。
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') }}
- 用户未登录
- 变量” app” 不存在。
- 数组的键” 用户名” 不存在。
- Twig中不存在” 默认” 过滤器
- 阵列的键” 用户未登录” 不存在。
编码愉快!
推荐阅读
- 如何在Windows中使用Swift编程语言
- 如何使用WinForms中的OpenCVSharp库和带有C#的网络摄像机拍摄快照
- 如何在C#中使用AES加密算法对文件进行加密和解密
- 如何使用Visual Studio Code的便携式版本
- 缺少来自android appcompat v7-21.0.0的样式
- 如何使用像Android Studio这样的pid杀死进程呢()
- 从Firebase读取数据到Android目前没有代码
- 在Realm过滤父母和子女 - Android
- 获取点在AndroidPlot中的正确位置