$number = "1+2"; eval('$rs='.$number.';'); echo $number , '=', $rs;
$number='1+2'; if(preg_match_all( '/^(\d+)([\*\/\+\-])(\d+)$/', $number, $match)){ echo '<pre>',print_r($match, true),'</pre>'; switch( $match[2][0]){ case '*': $rs=($match[1][0]*$match[3][0]); break; case '/': $rs=($match[1][0]/$match[3][0]); break; case '+': $rs=($match[1][0]+$match[3][0]); break; case '-': $rs=($match[1][0]-$match[3][0]); break; } }else $rs="not nuberic funciton"; echo $number,'=',$rs;
$match เป็นค่าที่ คำสั่ง preg_match_all ส่งค่ากลับมาให้เรา ในรูปแบบ array
ว่า ค้นหาอะไรเจอบ้าง อ้างอิง จากวงเล็บที่เราสร้างครอบส่วนที่ต้องการให้มีการส่งค่ามา
print_r( $match) ดู ศึกษาว่ามันส่งอะไรมาครับ หา regular expression มาอ่านเพิ่ม
preg_match() สิินะครับ มันเป็นเรื่องของ regular expression ซึ่งเป็นอีกภาษาหนึ่งเลยก็ว่าได้ ถือเป็นเรื่องขั้นสูงครับ จะสอนกันจริงๆ เป็นหนังสือเล่มนึงได้เลย
erige จะเลิกใช้แล้ว ใช้เป็นpreg_match()
ถ้าไม่มีตัวอย่างโค้ดมาให้อธิบายเลย แล้วจะให้อธิบายตั้งแต่เริ่ม เนื้อหามันเยอะมากครับ สำหรับ PCRE (perl-compatible regular expression) เข้าใจยากมากๆ ด้วย
http://www.php.net/manual/en/reference.pcre.pattern.syntax.php
http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php