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

من موسوعة حسوب
1.0: إضافة عنوان الصفحة | 2.0 محتوى الصفحة
 
طلا ملخص تعديل
 
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: المرشح slice في Twig}}</noinclude>
<noinclude>{{DISPLAYTITLE: المرشح slice في Twig}}</noinclude>
المرشح <code>slice</code> يستخرج شريحة صغيرة من التسلسل أو الربط (mapping) أو السلسلة النصية: <syntaxhighlight lang="twig">
المرشح <code>slice</code> يستخرج شريحة صغيرة من التسلسل أو الربط mapping أو السلسلة النصية: <syntaxhighlight lang="twig">
{% for i in [1, 2, 3, 4, 5]|slice(1, 2) %}
{% for i in [1, 2, 3, 4, 5]|slice(1, 2) %}
     {# سيكرر على 2 و 3 #}
     {# سيكرر على 2 و 3 #}
سطر 24: سطر 24:
{# إذا أهملنا الوسيط الأخير فسيختار كل العناصر الباقية #}
{# إذا أهملنا الوسيط الأخير فسيختار كل العناصر الباقية #}
{{ '12345'[2:] }} {# will display "345" #}
{{ '12345'[2:] }} {# will display "345" #}
</syntaxhighlight>أسلوب عمل المرشح <code>slice</code> يشبه دالة <code>array_slice</code> للمصفوفات في لغة PHP، و <code>mb_substr</code> للسلاسل النصية التي تستخدم <code>substr</code> كاحتياطي.
</syntaxhighlight>أسلوب عمل المرشح <code>slice</code> يشبه دالة <code>[[PHP/array slice|array_slice]]</code> للمصفوفات في لغة [[PHP]]، و <code>mb_substr</code> للسلاسل النصية التي تستخدم <code>substr</code> كاحتياطي.


يبدأ التسلسل من بداية المتغير إن كانت البداية غير سالبة، فإن كانت سالبة فإنه يبدأ من نفس المسافة من نهاية المتغير. إذا أُعطي الطول وكان موجبًا فإن التسلسل سيحتوي على عناصر عددها يساوي الطول، وإن كان المتغير أقصر من الطول فستكون العناصر المتغيرة فقط هي المتاحة، وإذا أُعطي الطول وكان سالبًا فإن التسلسل يوقف من العناصر عددًا مساويًا لذلك الطول من نهاية المتغير، أما إذا أُهمل الطول فإن التسلسل سيحتوي على كل شيء من البداية حتى نهاية المتغير.
يبدأ التسلسل من بداية المتغير إن كانت البداية غير سالبة، فإن كانت سالبة فإنه يبدأ من نفس المسافة من نهاية المتغير. إذا أُعطي الطول وكان موجبًا فإن التسلسل سيحتوي على عناصر عددها يساوي الطول، وإن كان المتغير أقصر من الطول فستكون العناصر المتغيرة فقط هي المتاحة، وإذا أُعطي الطول وكان سالبًا فإن التسلسل يوقف من العناصر عددًا مساويًا لذلك الطول من نهاية المتغير، أما إذا أُهمل الطول فإن التسلسل سيحتوي على كل شيء من البداية حتى نهاية المتغير.


لاحظ أنه يعمل مع الكائنات التي تستخدم واجهة [https://secure.php.net/manual/en/class.traversable.php Traversable].
لاحظ أنه يعمل مع الكائنات التي تستخدم واجهة [https://secure.php.net/manual/en/class.traversable.php <code>Traversable</code>].


== الوسائط ==
== الوسائط ==
سطر 37: سطر 37:


== انظر أيضًا ==
== انظر أيضًا ==
* [[Twig/intro|مقدمة عن محرك القوالب Twig.]]
*[[Twig/intro|مقدمة عن محرك القوالب Twig]]
* [[Twig/advanced|توسيع Twig.]]
*[[Twig/advanced|توسيع Twig]]
* [[Twig/internals|المكونات الداخلية لـ Twig.]]
*[[Twig/internals|المكونات الداخلية لـ Twig]]
* [[Twig/tags|الوسوم في Twig]].
*[[Twig/tags|الوسوم في Twig]]
* [[ Twig/filters|المرشحات في Twig]].
*[[ Twig/filters|المرشحات في Twig]]
== المصادر ==
== المصادر ==
* [https://twig.symfony.com/doc/3.x/filters/slice.html صفحة توثيق المرشح slice في توثيق Twig الرسمي].
* [https://twig.symfony.com/doc/3.x/filters/slice.html صفحة المرشح slice في توثيق Twig الرسمي]


[[تصنيف:Twig]]
[[تصنيف:Twig]]
[[تصنيف:Twig Filters]]
[[تصنيف:Twig Filters]]

المراجعة الحالية بتاريخ 06:26، 11 مايو 2021

المرشح slice يستخرج شريحة صغيرة من التسلسل أو الربط mapping أو السلسلة النصية:

{% for i in [1, 2, 3, 4, 5]|slice(1, 2) %}
    {# سيكرر على 2 و 3 #}
{% endfor %}

{{ '12345'|slice(1, 2) }}

{# يخرج 23 #}

يمكن استخدام أي تعبير صالح للبداية والطول:

{% for i in [1, 2, 3, 4, 5]|slice(start, length) %}
    {# ... #}
{% endfor %}

يُستخدم ترميز [] من أجل التجميل اللغوي:

{% for i in [1, 2, 3, 4, 5][start:length] %}
    {# ... #}
{% endfor %}

{{ '12345'[1:2] }} {# will display "23" #}

{# يمكن إهمال الوسيط الأول كأننا كتبنا صفرًا #}
{{ '12345'[:2] }} {# will display "12" #}

{# إذا أهملنا الوسيط الأخير فسيختار كل العناصر الباقية #}
{{ '12345'[2:] }} {# will display "345" #}

أسلوب عمل المرشح slice يشبه دالة array_slice للمصفوفات في لغة PHP، و mb_substr للسلاسل النصية التي تستخدم substr كاحتياطي.

يبدأ التسلسل من بداية المتغير إن كانت البداية غير سالبة، فإن كانت سالبة فإنه يبدأ من نفس المسافة من نهاية المتغير. إذا أُعطي الطول وكان موجبًا فإن التسلسل سيحتوي على عناصر عددها يساوي الطول، وإن كان المتغير أقصر من الطول فستكون العناصر المتغيرة فقط هي المتاحة، وإذا أُعطي الطول وكان سالبًا فإن التسلسل يوقف من العناصر عددًا مساويًا لذلك الطول من نهاية المتغير، أما إذا أُهمل الطول فإن التسلسل سيحتوي على كل شيء من البداية حتى نهاية المتغير.

لاحظ أنه يعمل مع الكائنات التي تستخدم واجهة Traversable.

الوسائط

  • start: بداية الجزء.
  • length: حجم الشريحة.
  • preserve_keys: تحديد هل يجب حفظ المفتاح أم لا إذا كان الدخل مصفوفة.

انظر أيضًا

المصادر