เป็น ฟังก์ชั่นอีกหนึ่ง ที่ต้องเก็บรวบรวมไว้ น่าจะมีประโยชน์ไม่มากก็น้อย
ใช้ในการคำนวณ ค่าการ บวก ลบ คูณ หาร ข้อความที่รับ
มาแบบตัวแปร string
ตัวอย่าง
การคำนวณค่าแบบปกติด้วย php
1 2 | $a =2+3; echo $a ; // ได้ค่า $a เท่ากับ 5 |
แต่กรณีการรับค่า การดำเนินการทางคณิตศาสตร์
มาในรูปแบบ string เช่น
1 2 | $a = "2+3" ; echo $a ; // ได้ค่า $a เป็นข้อความเท่ากับ 2+3 |
หากโจทย์ คือต้องการคำนวณค่าทางคณิตศาสตร์ จาก string
เราสามารถ ใช้ฟังก์ชั่นด้านล่างนี้ได้
1 2 3 4 5 6 | 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 ก่อน } |
ตัวอ่างการใช้งาน
1 2 | $a = "2+3" ; echo calc_str( $a ); // output 5 |
ดูตัวอย่างการใช้ create_function ของ php เพิ่มเติมได้ที่ http://php.net/create_function
ตัวอย่าง create_function ของ php
1 2 3 4 5 6 7 8 9 10 | <?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 ?> |