การสร้างฟังก์ชัน php7



การสร้างฟังก์ชัน
การกำหนดฟังก์ชันใหม่
การกำหนดฟังก์ชันใหม่ใน PHP ทำได้โดยการระบุ function ก่อนเริ่มเขียนโปรแกรมแสดงการทำงาน อย่างไรก็ตามข้อควรระวังคือตัวแปรที่สร้างขึ้นมาใหม่ใน Local จะอยู่ในขอบเขตของฟังก์ชันที่สร้างขึ้นเท่านั้น (ดูรายละเอียดเพิ่มเติมในขอบเขตตัวแปร ) ตัวอย่างการกำหนดฟังก์ชันใหม่ เช่น
<?
function max($a,$b)
{
           if ($a>$b)
                      $max = $a;
           else
                      $max = $b;
           return $max;
}
?>

การผ่านค่า arguments
จากตัวอย่างในการผ่านค่า Parameter ข้างต้น เราจะพบการผ่านค่า Parameter ที่เรียกว่า By VALUE คือการแก้ไขข้อมูลภายในฟังก็ชันไม่มีผลต่อข้อมูลจริงชุดเดิมแล้ว ในส่วนนี้เราจะกล่าวถึงการผ่านค่า Parameter แบบ By REFERENCE ซึ่งการอ้างอิงหรือเปลี่ยนตัวแปรจะเป็นการอ้างอิงและแก้ไขทีข้อมูลชุดเดิม ดังตัวอย่างต่อไปนี้
<?
function swap(&$a,&$b)
// ข้อสังเกตที่ตัวแปรจะมีเครื่องหมาย ampasand “&” อยู่ด้วย
{
          $tmp=$a;
          $a=$b;
          $b=$tmp;
}

$x=5;
$y=10;
swap($x,$y);
// จะได้ค่า x เป็น 10 และ ค่า y เป็น 5
?>
นอกจากนี้ PHP ยังสนับสนุนการใช้งาน Default Argument เช่นเดียวกันกับภาษา C++ ด้วย ดังตัวอย่างต่อไปนี้
<?
function cook($time,$food="chicken");
{
           echo "Cook $food in $time mins";
}

cook(10); // จะแสดง Cook chicken in 10 mins;
cook(10,"fish" ); // จะแสดง Cook fish in 10 mins;

?>
** ข้อควรระวัง หากมีการใช้ Default Argument ร่วมกับการใช้งานปกติ ควรให้ตัวแปร Argument ที่มีการระบุค่า Default อยู่ทางขวามือเสมอ
ใน PHP 4 ผู้เขียนสามารถที่จะเขียนโปรแกรมให้รับข้อมูลในลักษณะที่มีตัวแปรไม่จำกัดได้โดยอาศัยการทำงานร่วมกับฟังก์ชัน func_num_args(), func_get_arg(), and func_get_args() ซึ่งจะแสดงจำนวน Argument และ ค่าที่ได้รับตามลำดับ ดังตัวอย่างต่อไปนี้
<?
function cook();
{
           $numargs = func_num_args();          
           echo "Cook $numargs of food(s)";
           if ($numargs >= 2) {
                      echo "Dish No.2 is: " . func_get_arg (1) . "<br>\n";
            }
           $arg_list = func_get_args();
           for ($i = 0; $i < $numargs; $i++) {
                      echo "Disk $i+1 is: " . $arg_list[$i] . "<br>\n";
           }
}

cook("chicken","fish","pork");

?>

การคืนค่า
โดยปกติการคืนค่าใน PHP นั้นจะทำได้โดยการใช้คำสั่ง return ซึ่งจะกระทำได้เพียงค่าเดียวเท่านั้น อย่างไรก็ตามหากผู้ใช้ต้องการจะคืนค่ามากกว่า 1 ค่าอาจจะทำได้โดยการคืนค่าเป็น Array 1 ชุดก็ได้ ดังตัวอย่างต่อไปนี้
<?
function getuserinfo() {
          return array("krerk","piromsopa");
}
$userinfo = getuserinfo()
echo $userinfo[0];
echo $userinfo[1];

?>

การใช้ตัวแปรเรียกฟังก์ชัน
นอกจากการสนับสนุน ตัวแปรตัวแปร (Variable Variable ) ซึ่งทำงานในลักษณะของ Pointer แล้วPHP ยังสนับสนุนการใช้ตัวแปรฟังก์ชันที่มีลักษณะเหมือนกับ Pointer to ฟังก์ชั่นอีกด้วย ดังตัวอย่างต่อไปนี้
<?
function getten() {
          return 10;
}
function isone($x=0) {
          return ($x==1);
}

$func = "getten";
$val = $func();
$func = "isone";
$func("10");
?>