ให้เรตสมาชิก: 3 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

บทที่ 27 การใช้ตัวแปรแบบ global ภายในฟังก์ชัน

บางครั้งเราไม่ต้องการที่จะผ่านตัวแปรเป็นอาร์กิวเมนต์ของฟังก์ชัน เพื่อนำไปใช้ภายในฟังก์ชันเหล่านั้น ก็จะทำได้โดยการแจ้งใช้ตัวแปรที่มีชื่อเหมือนตัวแปรภายนอกที่เราต้องการใช้ ให้เป็น global หรือใช้ผ่านตัวแปรที่เป็นอาร์เรย์ของ PHP ที่มีชื่อว่า $GLOBALS ดังตัวอย่างต่อไปนี้
 
<?php
$a = 10;
$b = 20;
function getMin ( ) {
 global $a, $b;
if ($a < $b)
  return $a;
 else
  return $b;
}
function getMin2 () {  
if ($GLOBALS["a"] < $GLOBAL["b"])
  return $GLOBALS["a"];
 else
  return $GLOBALS["b"];
}
echo getMin()."<BR> ";
echo getMin2()."<BR> ";
?>

ในกรณีนี้เราต้องการจะใช้ตัวแปร $a และ $b ซึ่งอยู่นอกฟังก์ชัน getMin() เพื่อเช็คดูว่า ค่าของตัวแปรใดมีค่าน้อยกว่ากัน ถ้าเราไม่แจ้งใช้ global $a, $b; ตามตัวอย่างแล้ว $a และ $b จะกลายเป็นตัวแปรภายในแม้ว่าจะชื่อเหมือนกันตัวแปรภายนอกที่มีอยู่แล้วก็ตาม ทำให้ได้ผลการทำงานไม่ถูกต้องตามที่ต้องการ

ฟังก์ชัน getMin() อีกรูปแบบหนึ่ง โดยไม่ใช้ตัวแปรแบบ global ภายในฟังก์ชัน และใช้วิธีผ่านค่าแทน
 

<?php 
$a = 10;
$b = 20;
function getMin ($a, $b) {
  if ($a < $b)
      return $a;
  else
      return $b;
}
echo getMin($a, $b)."<BR> ";
?>



กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
แนะนำตัวช่วยในการ หาคำที่มีจำนวนการใช้งานมากที่สุด
โดย tatiya จ 20 ส.ค. 2018 4:54 pm บอร์ด Python Knowledge
0
4
จ 20 ส.ค. 2018 4:54 pm โดย tatiya
ตัวอย่างการใช้ Match Fuction
โดย tai14 จ 20 ส.ค. 2018 4:29 pm บอร์ด PHP Knowledge
0
3
จ 20 ส.ค. 2018 4:29 pm โดย tai14
ทำความรู้จักกับ Built-in Functions
โดย tai14 จ 20 ส.ค. 2018 3:40 pm บอร์ด PHP Knowledge
0
5
จ 20 ส.ค. 2018 3:40 pm โดย tai14
กลุ่มคำสั่งการทำงานซ้ำ
โดย tai14 จ 20 ส.ค. 2018 11:51 am บอร์ด PHP Knowledge
0
9
จ 20 ส.ค. 2018 11:51 am โดย tai14
ใบเสร็จรับเงินจาก POS แสดงเลขที่ Invoice ไม่ถูกต้อง [2018-08][006]
โดย AePongsak จ 20 ส.ค. 2018 10:54 am บอร์ด Hachanna - Testter
2
13
จ 20 ส.ค. 2018 5:18 pm โดย AePongsak
งานประจำวันที่ 20 สิงหาคม 2561
โดย Lamduan จ 20 ส.ค. 2018 10:23 am บอร์ด M066 - นางสาวลำดวน พันโอดเบี้ย
0
3
จ 20 ส.ค. 2018 10:23 am โดย Lamduan
งานที่ต้องทำประจำวันที่ 20 สิงหาคม 2561
โดย tai14 จ 20 ส.ค. 2018 10:18 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
6
จ 20 ส.ค. 2018 4:35 pm โดย Parichat
งานประจำวันที่ 20 สิงหาคม 2561
โดย tatiya จ 20 ส.ค. 2018 10:13 am บอร์ด M065 - ตติยะ นาชัย
0
3
จ 20 ส.ค. 2018 10:13 am โดย tatiya
งานประจำวันที่ 20 สิงหาคม 2561
โดย pprn จ 20 ส.ค. 2018 10:11 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
1
จ 20 ส.ค. 2018 10:11 am โดย pprn
งานประจำวันที่ 20 สิงหาคม 2561
โดย prakon จ 20 ส.ค. 2018 10:07 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
12
จ 20 ส.ค. 2018 10:07 am โดย prakon
B - Period Payment หน้าทำใบเสนอราคาต้องอยู่ ที่ tab แรก และเป็นราคาหลังรวม vat แล้ว
โดย mindphp จ 20 ส.ค. 2018 3:42 am บอร์ด M.D.Soft Co.,Ltd. - Tester
0
2
จ 20 ส.ค. 2018 3:42 am โดย mindphp
Q-สอบถามครับตอนนี้ผมติดปัญหา EnvironmentError: [Errno 13] Permission denied:
โดย tatiya อ 19 ส.ค. 2018 10:41 pm บอร์ด Programming - C/C++ & java & Python
2
22
จ 20 ส.ค. 2018 6:21 am โดย tatiya
วิธีแก้ปัญหา 'pip' is not recognized as an internal or external command, operable program or batch file
โดย tatiya อ 19 ส.ค. 2018 9:56 pm บอร์ด Python Knowledge
0
8
อ 19 ส.ค. 2018 9:56 pm โดย tatiya
สอบถามวิธีติดตั้งตัว module pythainlp ครับ
โดย tatiya อ 19 ส.ค. 2018 5:41 pm บอร์ด Programming - C/C++ & java & Python
3
21
อ 19 ส.ค. 2018 8:10 pm โดย mindphp
สอบถามวิธีการใส่ค่าที่ต้องการใน type="number" เป็นตัวเลขได้ทั้งบวก ลบ และทศนิยมที่มีค่าเป็นบวกและลบ แต่ไม่เอา 0 ค่ะ
โดย pprn ส 18 ส.ค. 2018 8:14 pm บอร์ด HTML CSS
1
25
อ 19 ส.ค. 2018 5:15 pm โดย mindphp
B - หน้า Contact ของลูกค้ามีปุ่มติ๊กเกินมา
โดย thatsawan ส 18 ส.ค. 2018 6:59 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
3
ส 18 ส.ค. 2018 6:59 pm โดย thatsawan
อบรมระบบ ERP Odoo 11 ครั้งที่ 30 วันที่ 18 สิงหาคม 2561
โดย Lamduan ส 18 ส.ค. 2018 6:58 pm บอร์ด M066 - นางสาวลำดวน พันโอดเบี้ย
0
5
ส 18 ส.ค. 2018 6:58 pm โดย Lamduan
สอบถามวิธีการคำนวณหา Rate ค่ะ
โดย pprn ส 18 ส.ค. 2018 6:51 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
16
ส 18 ส.ค. 2018 6:51 pm โดย pprn
B - ฐานจริง User M017 สร้าง inv จากหน้า sale ไม่ได้
โดย thatsawan ส 18 ส.ค. 2018 4:57 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
2
ส 18 ส.ค. 2018 4:57 pm โดย thatsawan
B - ยกเลิกจ่ายชำระ เเต่ หัก ณ ที่จ่ายไม่ยกเลิก ทำให้ออกรายงา หัก ณ ที่จ่ายผิด
โดย thatsawan ส 18 ส.ค. 2018 4:44 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
3
ส 18 ส.ค. 2018 4:44 pm โดย thatsawan