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



กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Q - วิธีการ แก้ไข้ erroe จากการเขียน phpbb เพื่อแบ่งหน้า ให้ส่วน Admin
โดย Ittichai_chupol อ 20 พ.ย. 2018 2:08 pm บอร์ด Programming - PHP
1
328
อ 20 พ.ย. 2018 7:01 pm โดย thatsawan
Built-in functions (2)ฟังชันNumber_format() และ ฟังก์ชั่น Str_repeat()
โดย จันนุสรณ์ ดีแก่ อ 20 พ.ย. 2018 1:34 pm บอร์ด PHP Knowledge
0
49
อ 20 พ.ย. 2018 1:34 pm โดย จันนุสรณ์ ดีแก่
Built-in functions (1)ฟังชัน explode() และ ฟังก์ชั่น Implode()
โดย จันนุสรณ์ ดีแก่ อ 20 พ.ย. 2018 11:23 am บอร์ด PHP Knowledge
0
50
อ 20 พ.ย. 2018 11:23 am โดย จันนุสรณ์ ดีแก่
แนะนำวิธี Start VM ด้วย Comamnd Line ใน คำสั่งเปิดเครื่อง
โดย mindphp อ 20 พ.ย. 2018 11:17 am บอร์ด Linux - Web Server
1
294
พ 21 พ.ย. 2018 7:24 pm โดย mindphp
ภาษาซี (C/C++) กับ โจทย์ทางคณิตศาสตร์ (2) แปลงฟุต&นิ้ว เป็น เซนติเมตร
โดย Aussadawut จ 19 พ.ย. 2018 2:57 pm บอร์ด Share Knowledge
0
237
จ 19 พ.ย. 2018 2:57 pm โดย Aussadawut
ภาษาซี (C/C++) กับ โจทย์ทางคณิตศาสตร์ (1) หาค่า “พื้นที่สี่เหลี่ยมจตุรัส” และ “ความยาวของเส้นรอบสี่เหลี่ยมจตุรัส”
โดย Aussadawut จ 19 พ.ย. 2018 11:09 am บอร์ด Share Knowledge
0
332
จ 19 พ.ย. 2018 11:09 am โดย Aussadawut
ภาษาซี กับ โจทย์ คำนวณ BMI
โดย Aussadawut ส 17 พ.ย. 2018 7:34 pm บอร์ด Share Knowledge
0
280
ส 17 พ.ย. 2018 7:34 pm โดย Aussadawut
การใช้ Foreach loop Statements ใน python
โดย ธวัชชัย แสนหาญ ส 17 พ.ย. 2018 7:16 pm บอร์ด Python Knowledge
0
406
ส 17 พ.ย. 2018 7:16 pm โดย ธวัชชัย แสนหาญ
การกำหนดค่าให้ for if
โดย จันนุสรณ์ ดีแก่ ส 17 พ.ย. 2018 7:12 pm บอร์ด PHP Knowledge
0
60
ส 17 พ.ย. 2018 7:12 pm โดย จันนุสรณ์ ดีแก่
การสร้างสูตรคูณ ในภาษา php แบบสั้นๆ
โดย จันนุสรณ์ ดีแก่ ส 17 พ.ย. 2018 6:55 pm บอร์ด PHP Knowledge
0
61
ส 17 พ.ย. 2018 6:55 pm โดย จันนุสรณ์ ดีแก่
การUpdateค่าในตัวแปรชนิด list ใน python
โดย ธวัชชัย แสนหาญ ส 17 พ.ย. 2018 6:45 pm บอร์ด Python Knowledge
1
406
จ 03 ธ.ค. 2018 8:15 pm โดย mindphp
การใชังานตัวแปร dictionary ใน python
โดย ธวัชชัย แสนหาญ ส 17 พ.ย. 2018 6:19 pm บอร์ด Share Knowledge
0
247
ส 17 พ.ย. 2018 6:19 pm โดย ธวัชชัย แสนหาญ
การใช้เงื่อนไข switch case
โดย จันนุสรณ์ ดีแก่ ส 17 พ.ย. 2018 6:12 pm บอร์ด PHP Knowledge
0
68
ส 17 พ.ย. 2018 6:12 pm โดย จันนุสรณ์ ดีแก่
ภาษาซี กับ โจทย์ Loop ในตำนาน (7) รับค่าตัวเลขไปเรื่อยๆจนกว่าจะเจอเลข 0 แล้วจึงหยุดรับค่า พร้อมทั้งนับว่าหารด้วย 5 ลงตัว
โดย Aussadawut ส 17 พ.ย. 2018 6:08 pm บอร์ด Share Knowledge
0
237
ส 17 พ.ย. 2018 6:08 pm โดย Aussadawut
การกำหนดตัวแปร ใน python
โดย ธวัชชัย แสนหาญ ส 17 พ.ย. 2018 5:09 pm บอร์ด Share Knowledge
0
243
ส 17 พ.ย. 2018 5:09 pm โดย ธวัชชัย แสนหาญ
ภาษาซี กับ โจทย์ Loop ในตำนาน (6) รับค่าตัวเลขไปเรื่อยๆจนกว่าจะเจอเลข 0 แล้วจึงหยุดรับค่า
โดย Aussadawut ส 17 พ.ย. 2018 4:59 pm บอร์ด Share Knowledge
0
254
ส 17 พ.ย. 2018 4:59 pm โดย Aussadawut
ภาษาซี กับ โจทย์ Loop ในตำนาน (5) แสดงเลขคู่/คี่ ด้วย Loop do while ตั้ง 0 จนถึง 100
โดย Aussadawut ส 17 พ.ย. 2018 4:23 pm บอร์ด Share Knowledge
0
264
ส 17 พ.ย. 2018 4:23 pm โดย Aussadawut
ภาษาซี กับ โจทย์ Loop ในตำนาน (4) แสดงเลขคู่/คี่ ด้วย Loop for ตั้ง 0 จนถึง 100
โดย Aussadawut ส 17 พ.ย. 2018 3:23 pm บอร์ด Share Knowledge
0
275
ส 17 พ.ย. 2018 3:23 pm โดย Aussadawut
การสืบทอด Class แบบ Object-Oriented หรือ OOP ใน Python
โดย ธวัชชัย แสนหาญ ส 17 พ.ย. 2018 3:20 pm บอร์ด Python Knowledge
0
476
ส 17 พ.ย. 2018 3:20 pm โดย ธวัชชัย แสนหาญ
ภาษาซี กับ โจทย์ Loop ในตำนาน (3) แสดงเลขคู่/คี่ ด้วย Loop while ตั้ง 0 จนถึง 100
โดย Aussadawut ส 17 พ.ย. 2018 2:57 pm บอร์ด Share Knowledge
0
265
ส 17 พ.ย. 2018 2:57 pm โดย Aussadawut