اذهب إلى المحتوى

السؤال

نشر

أريد إنشاء عدة متغيرات متشابهة في الاسم، مع احتوائها على رقم تصاعدي.

مثال:

<?php 
$num1 = "Number 1";
$num2 = "Number 2";
$num3 = "Number 3";

for ($i = 0; $i < 3; $i++) {
    echo $num$i . "<br>";
}
?>

لكن يبدو أن الرمز $ يعتبر متغير غير صالحة في هذه الحالة، فكيف يمكنني الوصول إلى هذه النتيجة بشكل صحيح؟

Recommended Posts

  • 1
نشر

هممم لماذا لاتكتبها بهذي الطريقة

<?php

for ($i = 0; $i < 3; $i++) {

    echo "<input type='text' value='varb $i' name='var $i'> <br>";
    //or
    //echo "<input type='hidden' value='var $i' name='var $i'> ";
  }

for ($i = 0; $i < 3; $i++) {

    echo "var $i" . "<br>";
}
?>

 

  • 0
نشر (معدل)

أولا عليك ببداية حلقة التكرار بالعدد 1 وليس 3 لأنك تريد البدء بـ Number 1.

و استعمالك لـ

 $num$i

دون اللجوء إلى رابطة concatenation  وهي النقطة "." سيتسبب في رفع استثناء exception.

وتكون الطريقة الصحيحة لفعل ذلك، كما يلي:

$num1 = "Number 1";
$num2 = "Number 2";
$num3 = "Number 3";

for ($i = 1; $i <=3; $i++) {
    $num = 'num' . $i;
    echo ${$num} . "<br>";
}

أو:

<?php 
$num1 = "Number 1";
$num2 = "Number 2";
$num3 = "Number 3";

for ($i = 0; $i < 3; $i++) {
    echo ${"num".$i} . "<br>";
}

يمكن الحصول على نفس النتيجة، باستعمال مصفوفة تخزّن فيها القيم المناسبة للمتغيرات، ثم تتصفحها عن طريق حلقة التكرار for:

$nums = array("Number 1", "Number 2","Number 3");
for ($i = 0; $i <3; $i++) {
    echo $nums[$i] . "<br>";
}

 

تم التعديل في بواسطة E.Nourddine

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...