ทิปคอม แก้ปัญหาคอม ซ่อมคอม
หน้าแรก ทิปคอมพิวเตอร์ บทเรียนออนไลน์ ดาวน์โหลดฟรีแวร์ จาวาสคริปต์ ข่าวไอที บทความไอที เว็บไดเร็คทอรี่ เว็บบอร์ด ฝากรูปฟรี


เมนูหลัก
การแก้ปัญหาคอมพิวเตอร ์
การบำรุงรักษาคอมพิวเตอร์
เทคนิคการปรับแต่ง Win 98 และ Me
ครบเครื่องเรื่องโอเวอร์คล๊อค
การใช้โปรแกรมต่าง ๆ
ความรู้เรื่อง ADSL และการ Config
ทดสอบความรู้คอมพิวเตอร์ออนไลน์
ศัพท์คอมพิวเตอร์และอินเตอร์เน็ต
รวมของฟรีในอินเตอร์เน็ต
โปรโมทเว็บไซค์ให้ดังฟรี ๆ
แนะนำร้านซ่อมคอมพิวเตอร์
แนะนำสถานที่เรียนคอมราคาถูก
หาเพื่อนใหม่, หากิ๊ก MSN
ตลาดซื้อ-ขายสินค้าบีคอม
สมัครงาน,ลงประกาศรับสมัครงาน
ลงประกาศโฆษณาประชาสัมพันธ์ฟรี
ไอทีเพื่อชีวิต
รู้ลึกรู้จริง Google AdSense
รวมคลิปวีดีโอเทคโนโลยีต่าง ๆ
ทดสอบความเร็วอินเตอร์เน็ต
AirCard ราคาพิเศษ รับวาง Colo ราคาประหยัด หนังดี การ์ตูนดัง ซีรีย์เพียบ
 
 
ตั้งบีคอมไว้หน้าแรก ตั้งบีคอมไว้เป็นหน้าแรก
แนะนำติชมบีคอม

  บทเรียน PHP
ค้นหาเว็บไซค์
Memorytoday itknowledgesale.com
บทที่ 26 การสร้างฟังก์ชันแบบเรียกตัวเอง (recursive function)
ตัวอย่าง การหาค่าแฟลทอเรียล n!
 
<?
function factorial ($n) {
  if ( ($n == 0) || ($n == 1) )
   return 1;
  else
    return $n*factorial($n-1);
}
echo  factorial(4);

?>

เงื่อนไขก็ใช้ฟังก์ชัน factorial() จากตัวอย่างข้างบน คือ $n จะต้องเป็นตัวแปรที่เก็บค่าที่เป็นเลขจำนวนเต็ม และไม่เป็นลบ ถ้าเราต้องการจะเขียนฟังก์ชันให้มีความปลอดภัยในการใช้งาน เราก็อาจจะเพิ่มเงื่อนไข เพื่อตรวจเช็คดูก่อนว่า ผู้ใช้ผ่านค่าของตัวแปรที่ตรงตามต้องการหรือไม่ เช่น ไม่ผ่านค่าที่เป็นสตริงค์ หรือเป็นเลขทศนิยม หรือค่าที่เป็นลบ เป็นต้น

ตัวอย่าง การค้นหาข้อมูลแบบ Binary Search ในอาร์เรย์ที่มีการเรียงข้อมูลจากน้อยไปมาก

<?

function binSearch(&$key,&$array, $left, $right)
{
   $mid = ceil( ($left + $right) / 2 );

   if ($left > $right)
      return -1;
   if ($array[$mid] == $key)
      return $mid;
   else if ($key < $array[$mid])
      return binSearch($key, $array, $left, $mid-1);  // recursive call
   else
      return binSearch($key, $array, $mid+1, $right); // recursive call
}

$num=100;
$key = randInt(0, $num);
for($i=0; $i < $num; $i++) {
  $sorted_array[$i] = $i+1;
}

echo binSearch(13, $sorted_array, 0, $num);

?>

ตัวอย่าง การสร้างสตริงค์แบบสุ่มอีกแบบหนึ่งซึ่งอาจจะนำไปใช้ในการสร้าง one-time password ( OTP)

<?

function randomToken($len) {
  srand( date("s") );
  $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  $chars.= "1234567890!@#$%^&*()";
  $ret_str = "";
  $num = strlen($chars);
  for($i=0; $i < $len; $i++) {
    $ret_str.= $chars[rand()%$num];
  }
  return $ret_str;
}

echo randomToken(13)," ";

?>

หมายเหตุ: การกำหนดค่า seed สำหรับฟังก์ชัน srand() นอกจะใช้ date("s") เป็นตัวกำหนดค่าแล้ว เราอาจจะใช้ฟังก์ชันอื่นก็ได้ เช่น srand((double)microtime()*1000000);




Thailand Hotels