个性化阅读
专注于IT技术分析

每个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 %}
    <div   class="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 -%}

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. 阵列的键”用户未登录”不存在。

恭喜, 你已完成测试!如果你认为自己知道所有答案, 请在此处将你的结果与正确答案和对它们的解释进行比较。

编码愉快!

赞(0)
未经允许不得转载:srcmini » 每个Twig开发人员都应该能够回答的20个问题

评论 抢沙发

评论前必须登录!