20 вопросов, на которые должен ответить каждый разработчик Twig

Содержание

В этом посте мы хотим поделиться с вами 20 вопросами, на которые должен ответить каждый разработчик Twig. Вы можете думать об этом как о викторине, и вы, очевидно, можете оценить свои знания с помощью Twig. Прежде чем начать, имейте в виду, что:

  • На некоторые вопросы есть несколько ответов.
  • Вопросы касаются только Twig, ничего о фреймворках, которые реализуют его, как Symfony.
  • Вы одобрили тест с 14 (70%) правильными ответами на вопросы.

После того как вы сделали тест, вы можете найти ответы здесь. Сказав это, давайте начнем!

Заметка

Чтобы сделать честный тест, попробуйте выполнить тест без поиска решения. Помните, что если вы не знаете ответ нескольких из них, это не значит, что вы плохо с Twig! Это просто означает, что есть вещи, о которых вы даже не знали, поэтому продолжайте изучать Twig с официальной документацией.

1. Как вы можете объявить переменную в Twig?

  1. {% define myVariable = ‘Мой текст’%}
  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
  2. Ошибка: преобразование массива в строку
  3. название
  4. Ксавье
  5. Ложь

3. Каков синтаксис комментариев для Twig?

  1. {{- Текст комментария -}}
  2. {[- Текст комментария -]}
  3. {{# Текст комментария #}}
  4. {# Текст комментария #}
  5. {[Текст комментария]}

4. Выход побег в веточку

  1. включен по умолчанию.
  2. может быть отключен специально в некоторой переменной с помощью необработанного фильтра.
  3. по умолчанию отключено.
  4. необходимо предотвратить атаки XSS.
  5. Веточка не может избежать выхода.

5. Создает ли Twig специальную переменную в области цикла for для получения информации о текущей итерации? Если это так, как его зовут?

  1. Twig не предлагает такую ​​функцию.
  2. цикл
  3. петля
  4. forLoop
  5. итерация

6. Каким будет вывод следующего фрагмента?

{% verbatim %}
    {% for row in rows %}
  • {{ rows.text }}
  • {% endfor %}
{% endverbatim %}

A.

  • Row 1 Text
  • Row 2 Text
  • Row 3 Text
  • Row 4 Text

B.

    {% for row in rows %}
  • {{ rows.text }}
  • {% endfor %}

C. Дословный тип блока не существует.

D. Переменных строк не существует.

7. Какой из следующих фильтров по умолчанию не существует в Twig?

  1. экранирования в
  2. присоединиться
  3. длина
  4. Трещина
  5. strtolower

8. Каков вывод следующего фрагмента?

{% spaceless %}
Welcome David !
{% endspaceless %}
  1. Добро пожаловать, Дэвид!
  2. Ошибка шаблона: блок Spaceless ожидает, что содержимое HTML будет правильно идентифицировано.
  3. Добро пожаловать, Дэвид!
  4. Добро пожаловать, Дэвид!
  5. WelcomeDavid!

9. Каков правильный синтаксис для объединения строк?

  1. {{«Имя» + «» + «Фамилия»}}
  2. {{«Имя» ^ «Фамилия»}}
  3. {{«Имя» ~ «» ~ «Фамилия»}}
  4. {{ «Имя Фамилия» }}
  5. {{ «Имя». » » .»Фамилия» }}

10. Как вы можете проверить, идентичны ли 2 переменные (важные идентичные, а не равные)?

  1. {% if variableA == variableB%}
  2. {% if variableA === variableB%}
  3. {% if variableA>< variableB %}
  4. {%, если переменная A идентична переменной B%}
  5. {%, если переменная A такая же, как (variableB)%}

11. Можно ли использовать те же самые PHP-константы в Twig по умолчанию?

  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] | randomize}}
  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. Ноль
  5. Данный код Twig содержит синтаксические ошибки. Неизвестный тег «с».

15. Какие из следующих тестовых ключевых слов не существуют в Twig?

  1. {% если a делится на (b)%}
  2. {%, если a итерируемый%}
  3. {% если a пусто%}
  4. {%, если нечетный%}
  5. {%, если a является экземпляром b%}

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"] %}

{% for row in items|batch(4) %}

{%- for column in row -%}

{%- endfor -%}

{% endfor %}
{{ column }}

A.

abcd
efgh

B.

abcd
efgh

C. Фильтр «партия» не существует в Twig.

D. Пакетный фильтр ожидает строку в качестве первого аргумента, заданного целого числа.

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. Переменная «приложение» не существует.
  3. Ключ «username» для массива не существует.
  4. Фильтр «по умолчанию» не существует в Twig
  5. Ключ «Пользователь не авторизован» для массива не существует.

Поздравляю, вы сделали это до конца теста! Если вы думаете, что знаете ответ на все из них, мы предлагаем вам сравнить ваши результаты с правильные ответы и объяснения к ним здесь.

Ссылка на основную публикацию
Adblock
detector