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

من موسوعة حسوب
1.0: إضافة عنوان الصفحة | 2.0 محتوى الصفحة
 
طلا ملخص تعديل
سطر 6: سطر 6:


{# [1, 2, 'apple', 'orange'] القيم الآن فيها #}
{# [1, 2, 'apple', 'orange'] القيم الآن فيها #}
</syntaxhighlight>كذلك فإن المرشح merge يصلح استخدامه في حالة الجداول (hashes):<syntaxhighlight lang="twig">
</syntaxhighlight>كذلك فإن المرشح <code>merge</code> يصلح استخدامه في حالة الجداول hashes:<syntaxhighlight lang="twig">
{% set items = { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'unknown' } %}
{% set items = { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'unknown' } %}


سطر 12: سطر 12:


{# { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car', 'renault': 'car' } القيم تحتوي الآن #}
{# { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car', 'renault': 'car' } القيم تحتوي الآن #}
</syntaxhighlight>لكن بالنسبة للجداول فإن عملية الدمج تحدث على المفاتيح، فإن المفتاح يضاف إذا لم يكن موجودًا، وإن كان موجودًا فيتم تخطي قيمته. كذلك، يُعكس العنصران اللذان في الاستدعاء لضمان تعريف بعض القيم في مصفوفة ما -بالقيم الافتراضية المعطاة-:<syntaxhighlight lang="twig">
</syntaxhighlight>لكن بالنسبة للجداول hashes فإن عملية الدمج تحدث على المفاتيح، فإن المفتاح يضاف إذا لم يكن موجودًا، وإن كان موجودًا فيتم استبدال قيمته. كذلك، يُعكس العنصران اللذان في الاستدعاء لضمان تعريف بعض القيم في مصفوفة ما -بالقيم الافتراضية المعطاة-:<syntaxhighlight lang="twig">
xxxxxxxxxx {% set items = { 'apple': 'fruit', 'orange': 'fruit' } %}​{% set items = { 'apple': 'unknown' }|merge(items) %}​{# { 'apple': 'fruit', 'orange': 'fruit' } القيم الآن فيها #}
xxxxxxxxxx {% set items = { 'apple': 'fruit', 'orange': 'fruit' } %}​{% set items = { 'apple': 'unknown' }|merge(items) %}​{# { 'apple': 'fruit', 'orange': 'fruit' } القيم الآن فيها #}
</syntaxhighlight>لاحظ أن Twig يستخدم دالة [https://www.php.net/manual/en/function.array-merge.php array_merge] الخاصة بلغة PHP، وهي تدعم الكائنات القابلة للاجتياز (traversable) إذ تحولها إلى مصفوفات.
</syntaxhighlight>لاحظ أن Twig يستخدم دالة <code>[[PHP/array merge|array_merge]]</code> الخاصة بلغة [[PHP]]، وهي تدعم الكائنات القابلة للمرور على عناصرها (traversable) إذ تحولها إلى مصفوفات.


== انظر أيضًا ==
== انظر أيضًا ==
* [[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/merge.html صفحة توثيق المرشح merge في توثيق Twig الرسمي].
* [https://twig.symfony.com/doc/3.x/filters/merge.html صفحة المرشح merge في توثيق Twig الرسمي]


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

مراجعة 07:48، 6 مايو 2021

المرشح merge يدمج مصفوفتين معًا، وتضاف القيم الجديدة في نهاية السرد:

{% set values = [1, 2] %}

{% set values = values|merge(['apple', 'orange']) %}

{# [1, 2, 'apple', 'orange'] القيم الآن فيها #}

كذلك فإن المرشح merge يصلح استخدامه في حالة الجداول hashes:

{% set items = { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'unknown' } %}

{% set items = items|merge({ 'peugeot': 'car', 'renault': 'car' }) %}

{# { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car', 'renault': 'car' } القيم تحتوي الآن #}

لكن بالنسبة للجداول hashes فإن عملية الدمج تحدث على المفاتيح، فإن المفتاح يضاف إذا لم يكن موجودًا، وإن كان موجودًا فيتم استبدال قيمته. كذلك، يُعكس العنصران اللذان في الاستدعاء لضمان تعريف بعض القيم في مصفوفة ما -بالقيم الافتراضية المعطاة-:

xxxxxxxxxx {% set items = { 'apple': 'fruit', 'orange': 'fruit' } %}{% set items = { 'apple': 'unknown' }|merge(items) %}{# { 'apple': 'fruit', 'orange': 'fruit' } القيم الآن فيها #}

لاحظ أن Twig يستخدم دالة array_merge الخاصة بلغة PHP، وهي تدعم الكائنات القابلة للمرور على عناصرها (traversable) إذ تحولها إلى مصفوفات.

انظر أيضًا

المصادر