المشاركة الأصلية كتبت بواسطة MohDesign
هلا اخي الله يسلمك
اولا count تبطئ من عملية for
لان for في كل مره راح "تحسب count " القيمه للمتغير $num
ثانيا بعض الاحيان count ترجع لك القيمه صفر ..... لماذا ؟
لان count تستخدم مع المصفوفات array والمتغير $num هنا هو مجرد variable وليس مصفوفه
الطريقه الصحيحه هي " مع المصوصفات "
كود:
$num_size=count($num);
for ($i = 0;$i < $num_size; $i++) {
...
}
هنا جعلنا for لاتقوم في كل مره بحساب عدد المتغيرات داخل مصفوفه وهذا يجعل البرنامج اسرع بكثير خصوصا لو كانت المصفوفه مثلا تحتوي على الالاف من القيم
بالنسبه لسؤالك الثاني
دائما يجب عليك ان تقوم بمعرفة ما اذا كانت المدخلات صحيحه او لا قبل البدأ بالتنفيذ
مثلا انت لديك خطأ اخر وهو ال $name
ماذا لو ادخل المستخدم
كود:
dbform("5","user.pass");
لاحظ انها 5 وهناك اسمين فقط
اذا تقوم بالتالي :
كود:
$name = explode(".",$name);
$name_size = count($name);
if($name_size != $num){
die("ERROR");
exit;
}
لاحظ انني استخدمت count هنا والسبب ان $name اصبح مصفوفه ونريد حساب عدد القيم بداخلها
اذا يصبح الكود بالشكل التالي :
كود PHP:
<?php
function dbform($num,$name)
{
if ($num == 0){
die("ERROR");
exit;
}
$name = explode(".",$name);
$name_size = count($name);
if($name_size != $num){
die("ERROR");
exit;
}
$test = "";
for ($i = 0;$i < $num; $i++)
{
$test .= "<input type=\"txt\" name=".$name[$i].">\n";
}
return $test;
}
print dbform("2","user.pass");
?>
كود:
dbform("2","user.pass"); // صحيحه
dbform("3","user.pass"); // خاطئه
dbform("2","user.pass.id"); // خاطئه
محمد