เป็น ฟังก์ชั่นอีกหนึ่ง ที่ต้องเก็บรวบรวมไว้ น่าจะมีประโยชน์ไม่มากก็น้อย
ใช้ในการคำนวณ ค่าการ บวก ลบ คูณ หาร ข้อความที่รับ
มาแบบตัวแปร string
ตัวอย่าง
การคำนวณค่าแบบปกติด้วย php
$a=2+3; echo $a; // ได้ค่า $a เท่ากับ 5
แต่กรณีการรับค่า การดำเนินการทางคณิตศาสตร์
มาในรูปแบบ string เช่น
$a="2+3"; echo $a; // ได้ค่า $a เป็นข้อความเท่ากับ 2+3
หากโจทย์ คือต้องการคำนวณค่าทางคณิตศาสตร์ จาก string
เราสามารถ ใช้ฟังก์ชั่นด้านล่างนี้ได้
function calc_str($mathString){ $mathString = trim($mathString); // ตัดช่วงว่างหน้า หลัง $mathString = ereg_replace ('[^0-9\+-\*\/\(\) ]', '', $mathString); // ตัดตัวอักษรที่ไม่ใช่ ตัวเลข 0-9 เครื่องหมาย +-*/ ( ) และ ช่องว่าง ออก $compute = create_function("", "return (" . $mathString . ");" ); // สรัางฟังก์ชั่นเพื่อคืนค่าการคำนวณ return 0 + $compute(); // คืนค่าการคำนวณ และเพื่อความชัวร์ให้ค่าเป็นตัวแปร integers บวกด้วย 0 ก่อน }
ตัวอ่างการใช้งาน
$a="2+3"; echo calc_str($a); // output 5
ดูตัวอย่างการใช้ create_function ของ php เพิ่มเติมได้ที่ http://php.net/create_function
ตัวอย่าง create_function ของ php
<?php $newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);'); echo "New anonymous function: $newfunc "; echo $newfunc(2, M_E) . " "; // outputs // New anonymous function: lambda_1 // ln(2) + ln(2.718281828459) = 1.6931471805599 ?>