2015-06-19 5 views
0

При сравнении в PHP рекомендуется использовать === вместо == из-за непереходного характера и причуд, таких как "5 is not a number" == 5.Twig аналогичен оператору

По этой директиве, это означает, что оператор same as следует использовать вместо == в Twig ?:

{# "Wrong" #} 
{% if foo.bar == 3 %} 

{# Better #} 
{% if foo.bar is same as(3) %} 

А также для is not same as против !=.

+0

Не забудьте понять ваш вопрос. == и === оба правильны в зависимости от того, что вы пытаетесь сравнить. Это зависит от того, что вы хотите, чтобы условие возвращалось после жонглирования элементов. –

+0

@YoannAugen У меня никогда не было случая, когда я хочу, чтобы элементы были подтасованы (или преобразованы в числа) для сравнения равенства, по крайней мере, не в PHP. См. Http://phpsadness.com/sad/47 –

+0

, и если вы хотите сравнить true с 1? –

ответ

0

Это имеет смысл при рассмотрении PHP и Twig как двух очень разных инструментов. Основным мотивом Fabien Potencier для создания Twig было предоставление инструмента для веб-дизайнеров, а не веб-разработчиков. (См. Его blog post for more insight).

Веб-разработчики должны знать, что они более явны, и использовать === как можно чаще. В сфере веб-дизайна это, пожалуй, не так важно, но при необходимости эта функция доступна как same as() в Twig.