เป็น ฟังก์ชั่นอีกหนึ่ง ที่ต้องเก็บรวบรวมไว้ น่าจะมีประโยชน์ไม่มากก็น้อย
ใช้ในการคำนวณ ค่าการ บวก ลบ คูณ หาร ข้อความที่รับ
มาแบบตัวแปร 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
?>