الفرق بين المراجعتين لصفحة: «Twig/if»

من موسوعة حسوب
1.0: إضافة عنوان الصفحة.
 
ط مراجعة وتدقيق
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الوسم if في Twig}}</noinclude>
<noinclude>{{DISPLAYTITLE: الوسم if في Twig}}</noinclude>
يمكن موازنة تعليمة <code>if</code> في Twig بتعليمات <code>[[PHP/if|if]]</code> الموجودة في لغة [[PHP]]، فتستطيع استخدامها في أبسط صورة لها مع تعبير ما لننظر هل يقيَّم إلى <code>true</code> أم <code>false</code>:
{{DISPLAYTITLE: الوسم if في Twig}}<syntaxhighlight lang="twig">
{% if online == false %}
    <p>برجاء زيارة الموقع لاحقًا، إذ أنه الآن رهن الصيانة</p>
{% endif %}
</syntaxhighlight>كما تستطيع معرفة إن كانت مصفوفة ما بها عناصر أم لا:<syntaxhighlight lang="twig">
{% if users %}
    <ul>
        {% for user in users %}
            <li>{{ user.username|e }}</li>
        {% endfor %}
    </ul>
{% endif %}
</syntaxhighlight>انتبه إلى أنك ستستخدم <code>if users is defined</code> إذا أردت معرفة هل المتغير معرَّف أم لا.
يمكن التحقق من القيم التي تقيَّم إلى <code>false</code> باستخدام <code>not</code>:<syntaxhighlight lang="twig">
{% if not user.subscribed %}
    <p>لست مشتركًا في قائمتنا البريدية.</p>
{% endif %}
</syntaxhighlight>كذلك يمكن استخدام <code>and</code> و <code>or</code> في حالة الشرطيات المتعددة:<syntaxhighlight lang="twig">
{% if temperature > 18 and temperature < 27 %}
    <p>إنه يوم رائع للخروج في نزهة.</p>
{% endif %}
</syntaxhighlight>يمكن استخدام <code>elseif</code> و <code>else</code> للفروع المتعددة كما في لغة [[PHP]]، كما يمكن استخدام التعابير المعقدة <code>expressions</code> هنا أيضًا:<syntaxhighlight lang="twig">
{% if product.stock > 10 %}
  متاحة
{% elseif product.stock > 0 %}
  باقي {{ product.stock }} فقط!
{% else %}
  نفدت!
{% endif %}
</syntaxhighlight>لاحظ أن القواعد التي تحدد إن كان التعبير true أو false هي نفسها التي في PHP، الجدول التالي يوضح قواعد الحالات المتطرفة منها:
{| class="wikitable"
|+
!القيمة
!التقييم البولياني
|-
|نص فارغ
|<code>false</code>
|-
|صفر رقمي
|<code>false</code>
|-
|ليس رقمًا (NAN)
|<code>true</code>
|-
|ما لا نهاية (INF)
|<code>true</code>
|-
|سلسلة نصية من مسافات فقط
|<code>true</code>
|-
|السلسلة النصية "0" أو '0'
|<code>false</code>
|-
|مصفوفة فارغة
|<code>false</code>
|-
|null
|<code>false</code>
|-
|مصفوفة غير فارغة
|<code>false</code>
|-
|كائن
|<code>true</code>
|}
== انظر أيضًا ==
* [[Twig/intro|مقدمة عن محرك القوالب Twig]]
* [[Twig/coding standards|معايير كتابة الشيفرة في Twig]]
== المصادر ==
* [https://twig.symfony.com/doc/3.x/tags/if.html صفحة الوسم if في توثيق Twig الرسمي]
[[تصنيف:Twig]]
[[تصنيف:Twig Tags]]

المراجعة الحالية بتاريخ 15:59، 5 مايو 2021

يمكن موازنة تعليمة if في Twig بتعليمات if الموجودة في لغة PHP، فتستطيع استخدامها في أبسط صورة لها مع تعبير ما لننظر هل يقيَّم إلى true أم false:

{% if online == false %}
    <p>برجاء زيارة الموقع لاحقًا، إذ أنه الآن رهن الصيانة</p>
{% endif %}

كما تستطيع معرفة إن كانت مصفوفة ما بها عناصر أم لا:

{% if users %}
    <ul>
        {% for user in users %}
            <li>{{ user.username|e }}</li>
        {% endfor %}
    </ul>
{% endif %}

انتبه إلى أنك ستستخدم if users is defined إذا أردت معرفة هل المتغير معرَّف أم لا. يمكن التحقق من القيم التي تقيَّم إلى false باستخدام not:

{% if not user.subscribed %}
    <p>لست مشتركًا في قائمتنا البريدية.</p>
{% endif %}

كذلك يمكن استخدام and و or في حالة الشرطيات المتعددة:

{% if temperature > 18 and temperature < 27 %}
    <p>إنه يوم رائع للخروج في نزهة.</p>
{% endif %}

يمكن استخدام elseif و else للفروع المتعددة كما في لغة PHP، كما يمكن استخدام التعابير المعقدة expressions هنا أيضًا:

{% if product.stock > 10 %}
   متاحة
{% elseif product.stock > 0 %}
   باقي {{ product.stock }} فقط!
{% else %}
   نفدت!
{% endif %}

لاحظ أن القواعد التي تحدد إن كان التعبير true أو false هي نفسها التي في PHP، الجدول التالي يوضح قواعد الحالات المتطرفة منها:

القيمة التقييم البولياني
نص فارغ false
صفر رقمي false
ليس رقمًا (NAN) true
ما لا نهاية (INF) true
سلسلة نصية من مسافات فقط true
السلسلة النصية "0" أو '0' false
مصفوفة فارغة false
null false
مصفوفة غير فارغة false
كائن true

انظر أيضًا

المصادر