คำนวณ คำสั่ง การดำเนินการทาง คณิตศาสตร์ ด้วยฟังก์ชั่น php

เขียนเมื่อ 10 ปีก่อน โดย Ninenik Narkdee
การดำเนินการ คณิตศาสตร์ php

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ การดำเนินการ คณิตศาสตร์ php

ดูแล้ว 15,507 ครั้ง


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


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ











URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ