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

من موسوعة حسوب
< PHP
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:<code>end()</code>}}</noinclude> (PHP 4, PHP 5, PHP 7) تحرك الدالة <code>end()‎</code> المؤشر الداخلي للمصفوف...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:<code>end()</code>}}</noinclude>
<noinclude>{{DISPLAYTITLE:<code>each()</code>}}</noinclude>
(PHP 4, PHP 5, PHP 7)
(PHP 4, PHP 5, PHP 7)


تحرك الدالة <code>end()‎</code> المؤشر الداخلي للمصفوفة إلى آخر عنصر.
تُعيد الدالة <code>each()‎</code> كلًا من المفتاح والقيمة المقابلة الحاليين من المصفوفة وتُحرك مؤشرها للأمام.
 
تحذير: أُلغيت هذه الدالة اعتبارًا من PHP 7.2.0. الاعتماد على هذه الدالة غير محبذ على الإطلاق.


= الوصف =
= الوصف =
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
mixed end ( array &$array )
array each ( array &$array )
</syntaxhighlight>تنقل الدالة <code>end()‎</code> المؤشر الداخلي للمصفوفة <code>array</code> إلى العنصر الأخير فيها وتعيد قيمته.
</syntaxhighlight>تُعيد هذه الدالة كلًا من المفتاح والقيمة الحاليْيَن من مصفوفة وتُحرك مؤشر المصفوفة للأمام.
 
بعد تنفيذ الدالة <code>each()</code>‎، سيُترك مؤشر المصفوفة على العنصر التالي، أو بعد العنصر الأخير إذا كان قد وصل إلى نهاية المصفوفة. إذا كنت تريد المرور على المصفوفة مرة أخرى باستخدام <code>each()‎</code>، يجب عليك استخدام الدالة <code>[[PHP/Function/reset|reset()‎]]</code> أولًا.


= المعاملات =
= المعاملات =


=== <code>array</code> ===
=== <code>array</code> ===
المصفوفة المُدخلة. تُمرر هذه المصفوفة بالمرجعية لأن الدالة تُعدّلها. الأمر الذي يُحتم عليك أن تمرر لها متغيرًا حقيقيًا وليس دالة تُعيد مصفوفة، لأنَّه لا يمكن تمرير غير المتغيرات الفعلية فقط بالمرجعية.
المصفوفة المُدخَلة.


= القيم المعادة =
= القيم المعادة =
تُعيد الدالة قيمة العنصر الأخير، أو القيمة <code>FALSE</code> إذا كانت المصفوفة فارغة.
تُعيد هذه الدالة كلًا من المفتاح والقيمة الحاليْيَن من المصفوفة <code>array</code>. وتُعيد هذا الزوج على هيئة مصفوفة مكونة من أربعة عناصر، باستخدام المفاتيح 0 و 1 و key وvalue . تحتوي العناصر 0 و key على اسم المفتاح لعنصر المصفوفة، بينما تحتوي العناصر 1 وvalue على البيانات.
 
إذا تخطى المؤشر الداخلي نهاية محتويات المصفوفة، فستُعيد الدالة <code>each()‎</code> القيمة <code>FALSE</code>.


= أمثلة =
= أمثلة =
المثال 1: مثال على الدالة <code>end()‎</code><syntaxhighlight lang="php">
المثال 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/Function/list|list()‎]]</code> للمرور بالمصفوفة، وإليك مثالٌ على ذلك:


$fruits = array('apple', 'banana', 'cranberry');
المثال 2: مثال على المرور بمصفوفة باستخدام الدالة <code>each()‎</code><syntaxhighlight lang="php">
echo end($fruits); // cranberry
<?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/Function/key|key()‎]]</code>: جلب مفتاح من مصفوفة.
* الدالة <code>[[PHP/Function/list|list()‎]]</code>: بتعيين المتغيرات كما لو كانت مصفوفة.
* الدالة <code>[[PHP/Function/current|current()‎]]</code>: إعادة العنصر الحالي في مصفوفة.
* الدالة <code>[[PHP/Function/current|current()‎]]</code>: إعادة العنصر الحالي في مصفوفة.
* الدالة <code>[[PHP/Function/each|each()‎]]</code>: إعادة كل من المفتاح والقيمة المقابلة الحاليين من المصفوفة وتحريك مؤشرها الداخلي إلى الأمام.
* الدالة <code>[[PHP/Function/reset|reset()‎]]</code>: تحريك المؤشر الداخلي لمصفوفة إلى أول عنصر.
* الدالة <code>[[PHP/Function/reset|reset()‎]]</code>: ضبط المؤشر الداخلي لمصفوفة على أول عنصر.
* الدالة <code>[[PHP/Function/next|next()‎]]</code>: تحريك المؤشر الداخلي لمصفوفة إلى الأمام.
* الدالة <code>[[PHP/Function/next|next()‎]]</code>: تحريك المؤشر الداخلي لمصفوفة إلى الأمام.
* الدالة <code>[[PHP/Function/prev|prev()]]</code>‎: إرجاع مؤشر المصفوفة الداخلي إلى الخلف.
* الدالة <code>[[PHP/Function/prev|prev()]]</code>‎: إرجاع مؤشر المصفوفة الداخلي إلى الخلف.
* حلقة <code>[[PHP/Function/foreach|foreach]]</code>.
* <code>[[PHP/OOP/iterations|Object Iteration]]</code>.


= مصادر =
= مصادر =
* [http://php.net/manual/en/function.end.php صفحة الدالة end‎ في توثيق PHP الرسمي].
* [http://php.net/manual/en/function.each.php صفحة الدالة each‎ في توثيق PHP الرسمي].
<noinclude>{{DISPLAYTITLE:<code>end()</code>}}</noinclude>
[[تصنيف:PHP]]
[[تصنيف:PHP]]
[[تصنيف:PHP Function]]
[[تصنيف:PHP Function]]
[[تصنيف:PHP Array]]
[[تصنيف:PHP Array]]

مراجعة 22:17، 27 مارس 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.

مصادر

تحذير: أعرض عنوان "<code>end()</code>" تجاهل العنوان المعروض سابقا "<code>each()‎</code>".