ให้เรตสมาชิก: 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> ";
?>



กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การทำงานแบบ สืบทอด class บน Python
โดย tatiya อ 14 ส.ค. 2018 7:16 pm บอร์ด Python Knowledge
0
4
อ 14 ส.ค. 2018 7:16 pm โดย tatiya
วิธีลบริ้วรอยด้วย Photoshop
โดย tai14 อ 14 ส.ค. 2018 7:05 pm บอร์ด Graphic design
0
6
อ 14 ส.ค. 2018 7:05 pm โดย tai14
วิธีสร้างตัวอักษรนูนด้วย Photoshop
โดย tai14 อ 14 ส.ค. 2018 5:02 pm บอร์ด Graphic design
0
25
อ 14 ส.ค. 2018 5:02 pm โดย tai14
ประโยชน์ของ VPN
โดย anuwat somsakul อ 14 ส.ค. 2018 4:58 pm บอร์ด IOT - Internet of things
0
4
อ 14 ส.ค. 2018 4:58 pm โดย anuwat somsakul
การใช้งาน ตัวแปร golbal บน ภาษา Python
โดย tatiya อ 14 ส.ค. 2018 3:01 pm บอร์ด Python Knowledge
0
3
อ 14 ส.ค. 2018 3:01 pm โดย tatiya
Backup database Mysql
โดย acomscie อ 14 ส.ค. 2018 2:54 pm บอร์ด SQL - Database
0
8
อ 14 ส.ค. 2018 2:54 pm โดย acomscie
วิธีโคลนนิ่งภาพด้วย Photoshop
โดย tai14 อ 14 ส.ค. 2018 12:09 pm บอร์ด Graphic design
0
9
อ 14 ส.ค. 2018 12:09 pm โดย tai14
ตัวช่วยในการแสดงตัวเลขเคลื่อนไหวด้วย Plugin M Animate Number ใน Joomla
โดย Parichat อ 14 ส.ค. 2018 11:10 am บอร์ด PHP News
0
5
อ 14 ส.ค. 2018 11:10 am โดย Parichat
ขอสูตรคำนวณมือ Nper แบบไม่ติด log ค่ะ
โดย pprn อ 14 ส.ค. 2018 10:39 am บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
9
อ 14 ส.ค. 2018 10:39 am โดย pprn
งานประจำวันที่ 14 สิงหาคม 2561
โดย anuwat somsakul อ 14 ส.ค. 2018 10:27 am บอร์ด M067 - นายอนุวัฒน์ สมสกุล
1
7
อ 14 ส.ค. 2018 7:15 pm โดย anuwat somsakul
งานประจำวันที่ 14 สิงหาคม 2561
โดย prakon อ 14 ส.ค. 2018 10:20 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
15
อ 14 ส.ค. 2018 10:27 am โดย prakon
งานประจำวันที่ 14 สิงหาคม 2561
โดย Lamduan อ 14 ส.ค. 2018 10:16 am บอร์ด M066 - นางสาวลำดวน พันโอดเบี้ย
0
3
อ 14 ส.ค. 2018 10:16 am โดย Lamduan
งานประจำวันที่ 14 สิงหาม 2561
โดย tatiya อ 14 ส.ค. 2018 10:14 am บอร์ด M065 - ตติยะ นาชัย
1
6
อ 14 ส.ค. 2018 7:29 pm โดย tatiya
งานที่ต้องทำประจำวันที่ 14 สิงหาคม 2561
โดย tai14 อ 14 ส.ค. 2018 10:11 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
8
อ 14 ส.ค. 2018 7:27 pm โดย tai14
งานประจำวันที่ 14 สิงหาคม 2561
โดย pprn อ 14 ส.ค. 2018 10:09 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
7
อ 14 ส.ค. 2018 7:23 pm โดย pprn
วิธีกำหนดให้ หลายๆ IP และ Localhost เชื่อมต่อ มาที่ PostgreSQL Server ได้
โดย mindphp จ 13 ส.ค. 2018 6:00 pm บอร์ด PostgreSQL
1
32
จ 13 ส.ค. 2018 8:19 pm โดย ชินวัฒน์ วาทศิลป์
วิธีเมิร์ชเลเยอร์ทั้งหมดในครั้งเดียว ใน Photoshop
โดย anuwat somsakul ส 11 ส.ค. 2018 6:48 pm บอร์ด CSS Knowledge
0
22
ส 11 ส.ค. 2018 6:48 pm โดย anuwat somsakul
การใช้งาน โมดูล radom ในการสุ่มคำ
โดย tatiya ส 11 ส.ค. 2018 6:41 pm บอร์ด Programming - C/C++ & java & Python
0
18
ส 11 ส.ค. 2018 6:41 pm โดย tatiya
รูปแบบการนำส่งข้อมูลภาษีเงินได้หัก ณ ที่จ่ายยื่นด้วยสื่อบันทึกข้อมูลในระบบคอมพิวเตอร์ หรืออินเทอร์เน็ต
โดย thatsawan ส 11 ส.ค. 2018 4:49 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
28
ส 11 ส.ค. 2018 4:49 pm โดย thatsawan
B - ฐานเทส User กด Preferences ระบบแจ้งข้อความ error
โดย rinrada ส 11 ส.ค. 2018 2:46 pm บอร์ด Hachanna - Testter
0
6
ส 11 ส.ค. 2018 2:46 pm โดย rinrada