الفرق بين المراجعتين ل"PHP/each"
Khaled-yassin (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:<code>end()</code>}}</noinclude> (PHP 4, PHP 5, PHP 7) تحرك الدالة <code>end()</code> المؤشر الداخلي للمصفوف...') |
ط (نقل عبد اللطيف ايمش صفحة PHP/Function/each إلى PHP/each: إعادة هيكلة التوثيق) |
||
(7 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
− | <noinclude>{{DISPLAYTITLE:<code> | + | <noinclude>{{DISPLAYTITLE:الدالة <code>each()</code> في PHP}}</noinclude> |
(PHP 4, PHP 5, PHP 7) | (PHP 4, PHP 5, PHP 7) | ||
− | + | تُعيد الدالة <code>each()</code> كلًا من المفتاح والقيمة المقابلة الحاليين من المصفوفة وتُحرك مؤشرها للأمام. | |
− | = الوصف = | + | تحذير: أُلغيت هذه الدالة اعتبارًا من PHP 7.2.0. الاعتماد على هذه الدالة غير محبذ على الإطلاق. |
+ | |||
+ | == الوصف == | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
− | + | array each ( array &$array ) | |
− | </syntaxhighlight> | + | </syntaxhighlight>تُعيد هذه الدالة كلًا من المفتاح والقيمة الحاليْيَن من مصفوفة وتُحرك مؤشر المصفوفة للأمام. |
+ | |||
+ | بعد تنفيذ الدالة <code>each()</code>، سيُترك مؤشر المصفوفة على العنصر التالي، أو بعد العنصر الأخير إذا كان قد وصل إلى نهاية المصفوفة. إذا كنت تريد المرور على المصفوفة مرة أخرى باستخدام <code>each()</code>، يجب عليك استخدام الدالة <code>[[PHP/reset|reset()]]</code> أولًا. | ||
− | = المعاملات = | + | == المعاملات == |
=== <code>array</code> === | === <code>array</code> === | ||
− | المصفوفة | + | المصفوفة المُدخَلة. |
+ | |||
+ | == القيم المعادة == | ||
+ | تُعيد هذه الدالة كلًا من المفتاح والقيمة الحاليْيَن من المصفوفة <code>array</code>. وتُعيد هذا الزوج على هيئة مصفوفة مكونة من أربعة عناصر، باستخدام المفاتيح 0 و 1 و key وvalue . تحتوي العناصر 0 و key على اسم المفتاح لعنصر المصفوفة، بينما تحتوي العناصر 1 وvalue على البيانات. | ||
− | + | إذا تخطى المؤشر الداخلي نهاية محتويات المصفوفة، فستُعيد الدالة <code>each()</code> القيمة <code>FALSE</code>. | |
− | |||
− | = أمثلة = | + | == أمثلة == |
− | المثال 1: | + | المثال 1: أمثلة على الدالة <code>each()</code><syntaxhighlight lang="php"> |
+ | <?php | ||
+ | $foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese"); | ||
+ | $bar = each($foo); | ||
+ | print_r($bar); | ||
+ | ?> | ||
+ | </syntaxhighlight>يحتوي المتغير <code>bar$</code> الآن على أزواج المفاتيح والقيم التالية:<syntaxhighlight lang="php"> | ||
+ | Array | ||
+ | ( | ||
+ | [1] => bob | ||
+ | [value] => bob | ||
+ | [0] => 0 | ||
+ | [key] => 0 | ||
+ | ) | ||
+ | </syntaxhighlight><syntaxhighlight lang="php"> | ||
<?php | <?php | ||
+ | $foo = array("Robert" => "Bob", "Seppo" => "Sepi"); | ||
+ | $bar = each($foo); | ||
+ | print_r($bar); | ||
+ | ?> | ||
+ | </syntaxhighlight>يحتوي المتغير <code>bar$</code> الآن على أزواج المفاتيح والقيم التالية:<syntaxhighlight lang="php"> | ||
+ | Array | ||
+ | ( | ||
+ | [1] => Bob | ||
+ | [value] => Bob | ||
+ | [0] => Robert | ||
+ | [key] => Robert | ||
+ | ) | ||
+ | </syntaxhighlight>تستخدم الدالة <code>each()</code> عادة بالتزامن مع الدالة <code>[[PHP/list|list()]]</code> للمرور بالمصفوفة، وإليك مثالٌ على ذلك: | ||
− | $ | + | المثال 2: مثال على المرور بمصفوفة باستخدام الدالة <code>each()</code><syntaxhighlight lang="php"> |
− | + | <?php | |
+ | $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry'); | ||
+ | reset($fruit); | ||
+ | while (list($key, $val) = each($fruit)) { | ||
+ | echo "$key => $val\n"; | ||
+ | } | ||
?> | ?> | ||
− | </syntaxhighlight> | + | </syntaxhighlight>سوف تكون مُخرجات المثال أعلاه كالتالي:<syntaxhighlight lang="php"> |
+ | a => apple | ||
+ | b => banana | ||
+ | c => cranberry | ||
+ | </syntaxhighlight>تنبيه: نظرًا لأن تعيين مصفوفة إلى متغير آخر يعيد تعيين مؤشر المصفوفة الأصلي، فإن المثال السابق قد يتسبب في حدوث حلقة لا نهائية لو قمنا بتعيين <code>fruit$</code> إلى متغير آخر داخل الحلقة. | ||
+ | |||
+ | تحذير: تقبل الدالة <code>each()</code> أيضًا الكائنات، ولكن قد تعرض نتائج غير متوقعة. لذلك لا يُنصح بالمرور على خصائص الكائن مع الدالة <code>each()</code>. | ||
− | = انظر أيضًا = | + | == انظر أيضًا == |
− | * الدالة <code>[[PHP/ | + | * الدالة <code>[[PHP/key|key()]]</code>: جلب مفتاح من مصفوفة. |
− | * الدالة <code>[[PHP/ | + | * الدالة <code>[[PHP/list|list()]]</code>: بتعيين المتغيرات كما لو كانت مصفوفة. |
− | * الدالة <code>[[PHP | + | * الدالة <code>[[PHP/current|current()]]</code>: إعادة العنصر الحالي في مصفوفة. |
− | * الدالة <code>[[PHP | + | * الدالة <code>[[PHP/reset|reset()]]</code>: تحريك المؤشر الداخلي لمصفوفة إلى أول عنصر. |
− | * الدالة <code>[[PHP | + | * الدالة <code>[[PHP/next|next()]]</code>: تحريك المؤشر الداخلي لمصفوفة إلى الأمام. |
+ | * الدالة <code>[[PHP/prev|prev()]]</code>: إرجاع مؤشر المصفوفة الداخلي إلى الخلف. | ||
+ | * حلقة <code>[[PHP/foreach|foreach]]</code>. | ||
+ | * <code>[[PHP/object iteration|Object Iteration]]</code>. | ||
− | = مصادر = | + | == مصادر == |
− | * [http://php.net/manual/en/function. | + | * [http://php.net/manual/en/function.each.php صفحة الدالة each في توثيق PHP الرسمي]. |
[[تصنيف:PHP]] | [[تصنيف:PHP]] | ||
[[تصنيف:PHP Function]] | [[تصنيف:PHP Function]] | ||
[[تصنيف:PHP Array]] | [[تصنيف:PHP Array]] |
المراجعة الحالية بتاريخ 03:49، 4 أبريل 2018
(PHP 4, PHP 5, PHP 7)
تُعيد الدالة each()
كلًا من المفتاح والقيمة المقابلة الحاليين من المصفوفة وتُحرك مؤشرها للأمام.
تحذير: أُلغيت هذه الدالة اعتبارًا من PHP 7.2.0. الاعتماد على هذه الدالة غير محبذ على الإطلاق.
الوصف
array each ( array &$array )
تُعيد هذه الدالة كلًا من المفتاح والقيمة الحاليْيَن من مصفوفة وتُحرك مؤشر المصفوفة للأمام.
بعد تنفيذ الدالة each()
، سيُترك مؤشر المصفوفة على العنصر التالي، أو بعد العنصر الأخير إذا كان قد وصل إلى نهاية المصفوفة. إذا كنت تريد المرور على المصفوفة مرة أخرى باستخدام each()
، يجب عليك استخدام الدالة reset()
أولًا.
المعاملات
array
المصفوفة المُدخَلة.
القيم المعادة
تُعيد هذه الدالة كلًا من المفتاح والقيمة الحاليْيَن من المصفوفة array
. وتُعيد هذا الزوج على هيئة مصفوفة مكونة من أربعة عناصر، باستخدام المفاتيح 0 و 1 و key وvalue . تحتوي العناصر 0 و key على اسم المفتاح لعنصر المصفوفة، بينما تحتوي العناصر 1 وvalue على البيانات.
إذا تخطى المؤشر الداخلي نهاية محتويات المصفوفة، فستُعيد الدالة each()
القيمة FALSE
.
أمثلة
المثال 1: أمثلة على الدالة each()
<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>
يحتوي المتغير bar$
الآن على أزواج المفاتيح والقيم التالية:
Array
(
[1] => bob
[value] => bob
[0] => 0
[key] => 0
)
<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>
يحتوي المتغير bar$
الآن على أزواج المفاتيح والقيم التالية:
Array
(
[1] => Bob
[value] => Bob
[0] => Robert
[key] => Robert
)
تستخدم الدالة each()
عادة بالتزامن مع الدالة list()
للمرور بالمصفوفة، وإليك مثالٌ على ذلك:
المثال 2: مثال على المرور بمصفوفة باستخدام الدالة each()
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>
سوف تكون مُخرجات المثال أعلاه كالتالي:
a => apple
b => banana
c => cranberry
تنبيه: نظرًا لأن تعيين مصفوفة إلى متغير آخر يعيد تعيين مؤشر المصفوفة الأصلي، فإن المثال السابق قد يتسبب في حدوث حلقة لا نهائية لو قمنا بتعيين fruit$
إلى متغير آخر داخل الحلقة.
تحذير: تقبل الدالة each()
أيضًا الكائنات، ولكن قد تعرض نتائج غير متوقعة. لذلك لا يُنصح بالمرور على خصائص الكائن مع الدالة each()
.
انظر أيضًا
- الدالة
key()
: جلب مفتاح من مصفوفة. - الدالة
list()
: بتعيين المتغيرات كما لو كانت مصفوفة. - الدالة
current()
: إعادة العنصر الحالي في مصفوفة. - الدالة
reset()
: تحريك المؤشر الداخلي لمصفوفة إلى أول عنصر. - الدالة
next()
: تحريك المؤشر الداخلي لمصفوفة إلى الأمام. - الدالة
prev()
: إرجاع مؤشر المصفوفة الداخلي إلى الخلف. - حلقة
foreach
. Object Iteration
.