الفرق بين المراجعتين لصفحة: «Twig/slice»
أسامه-دمراني (نقاش | مساهمات) 1.0: إضافة عنوان الصفحة | 2.0 محتوى الصفحة |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: المرشح slice في Twig}}</noinclude> | |||
المرشح <code>slice</code> يستخرج شريحة صغيرة من التسلسل أو الربط | المرشح <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> للمصفوفات في لغة | </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 صفحة | * [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
: تحديد هل يجب حفظ المفتاح أم لا إذا كان الدخل مصفوفة.