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



กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
MOD_MTB_NEWS_RECENT
เราใช้งานบน Cloud Computing แทบทุกวันแต่เราไม่เคยรู้
โดย kubarnaza จ 18 ธ.ค. 2017 5:21 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
4
จ 18 ธ.ค. 2017 5:21 pm โดย kubarnaza
ปฏิวัติฝ่าย IT รองรับ Cloud อย่างจริงจัง
โดย kubarnaza จ 18 ธ.ค. 2017 4:38 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
6
จ 18 ธ.ค. 2017 4:38 pm โดย kubarnaza
Warning! - [44311] Request fields Invoice Ref.
โดย thatsawan จ 18 ธ.ค. 2017 4:15 pm บอร์ด OpenERP/Odoo Warning Message Note
0
1
จ 18 ธ.ค. 2017 4:15 pm โดย thatsawan
Warning! - [44310] Request fields Express Ref.
โดย thatsawan จ 18 ธ.ค. 2017 4:14 pm บอร์ด OpenERP/Odoo Warning Message Note
0
2
จ 18 ธ.ค. 2017 4:14 pm โดย thatsawan
Warning! - [44308] This user cannot access. Request approved By Accouting.
โดย thatsawan จ 18 ธ.ค. 2017 4:07 pm บอร์ด OpenERP/Odoo Warning Message Note
0
3
จ 18 ธ.ค. 2017 4:07 pm โดย thatsawan
แจกฟรี!! ปฏิทิน แมวเหมียว ปี 2018 พร้อมวันหยุด - ปฏิทิน 2561 โหลดเลยถ้าคุณรักแมว!!!
โดย Before Dong จ 18 ธ.ค. 2017 11:15 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
29
จ 18 ธ.ค. 2017 11:15 am โดย Before Dong
ยกคิ้ว คืออะไร ทำให้หน้าเด็กลงจริงมั้ย ??
โดย bunnyreview จ 18 ธ.ค. 2017 11:09 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
16
จ 18 ธ.ค. 2017 11:09 am โดย bunnyreview
คนทั่วไปคิด กับ โปรแกรมเมอร์คิด
โดย Before Dong จ 18 ธ.ค. 2017 10:17 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
22
จ 18 ธ.ค. 2017 10:17 am โดย Before Dong
MDFiles Components <Error>
โดย Nus อ 17 ธ.ค. 2017 4:18 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
21
อ 17 ธ.ค. 2017 4:18 pm โดย tsukasaz
ปฏิทินจีนปี 2561
โดย mindphp ส 16 ธ.ค. 2017 1:25 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
39
ส 16 ธ.ค. 2017 1:25 pm โดย mindphp
แนบไฟล์ภาพ เขียน เขียน code insert จะนำข้อมูลลง DB
โดย Mmn ส 16 ธ.ค. 2017 1:12 pm บอร์ด SQL - Database
3
38
ส 16 ธ.ค. 2017 1:12 pm โดย mindphp
อัพเกรด Joomla 3.7 เป็น 3.8.3 แบบ Manual ไม่ได้ครับ
โดย Before Dong ศ 15 ธ.ค. 2017 7:07 pm บอร์ด Joomla Development
0
28
ศ 15 ธ.ค. 2017 7:07 pm โดย Before Dong
[ปัญหา] ได้ข้อมูลมา แต่ต้องการจะแยกข้อมูลทีละตัวเพื่อเอาไปใช้งานค่ะ
โดย Wallapa ศ 15 ธ.ค. 2017 7:02 pm บอร์ด Programming - C/C++ & java & Python
0
32
ศ 15 ธ.ค. 2017 7:02 pm โดย Wallapa
สงคราม OpenStack ปะทะ VMware ร้อนแรงเมื่อมี IoT และ NFV
โดย kubarnaza ศ 15 ธ.ค. 2017 5:48 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
28
ศ 15 ธ.ค. 2017 5:48 pm โดย kubarnaza
[ปัญหา] ดึงข้อมูลเพื่อให้แสดงค่าใน PDF แต่ Error ค่ะ
โดย Wallapa ศ 15 ธ.ค. 2017 10:59 am บอร์ด Programming - C/C++ & java & Python
4
76
ศ 15 ธ.ค. 2017 10:59 am โดย Wallapa
ปฏิทินบัญชี ที่รวบรวมวันยื่นภาษีที่ทุกองค์กรต้องยื่น ปี 2018/ ปฏิทิน 2561 พร้อมวันหยุด - โหลดก่อนได้ก่อนอย่ารอช้า!
โดย Before Dong ศ 15 ธ.ค. 2017 10:23 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
83
ศ 15 ธ.ค. 2017 10:23 am โดย Before Dong
ฝันร้ายของโปรแกรมเมอร์
โดย Before Dong ศ 15 ธ.ค. 2017 9:42 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
157
ศ 15 ธ.ค. 2017 9:42 am โดย mindphp
[ปัญหา] เขียน selenium เพื่อcheck error แต่โค้ดที่เขียนเกิด error
โดย Panchalee พฤ 14 ธ.ค. 2017 9:27 pm บอร์ด Programming - C/C++ & java & Python
2
46
พฤ 14 ธ.ค. 2017 9:27 pm โดย mindphp
รบกวนขอวิธีคำนวนหาจำนวนตามข้อความครับ
โดย Artayaarray Dear พฤ 14 ธ.ค. 2017 4:41 pm บอร์ด Programming - PHP
1
33
พฤ 14 ธ.ค. 2017 4:41 pm โดย thatsawan
อยากทราบขั้นตอนในการทำ selenium เพื่อเช็ค Error 404
โดย Panchalee พฤ 14 ธ.ค. 2017 3:55 pm บอร์ด Programming - C/C++ & java & Python
1
51
พฤ 14 ธ.ค. 2017 3:55 pm โดย nuattawoot