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



กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ไม่สามารถแก้ไขบทความและเพิ่มบทความได้ใน Wordpress
โดย Parichat อ 23 ม.ค. 2018 4:24 pm บอร์ด Wordpress Developing Knowledge
0
10
อ 23 ม.ค. 2018 4:24 pm โดย Parichat
[ปัญหา] ต้องการดึง element จากหน้าเว็บเพื่อมาใช้ในการวนลูป
โดย Panchalee อ 23 ม.ค. 2018 3:53 pm บอร์ด Programming - C/C++ & java & Python
0
11
อ 23 ม.ค. 2018 3:53 pm โดย Panchalee
ขอประชาสัมพันธ์ รับสมัคร Web Programmer หลายอัตรา
โดย Ntp Nda อ 23 ม.ค. 2018 1:56 pm บอร์ด Programming - PHP
0
8
อ 23 ม.ค. 2018 1:56 pm โดย Ntp Nda
คู่ชีวิต
โดย Before Dong อ 23 ม.ค. 2018 11:04 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
12
อ 23 ม.ค. 2018 11:08 am โดย Before Dong
งานประจำวันที่ 23 มกราคม 2561
โดย Parichat อ 23 ม.ค. 2018 9:56 am บอร์ด MT21 - ปาริชาติ รัตโณภาส
2
12
อ 23 ม.ค. 2018 7:14 pm โดย Parichat
งานประจำวันที่ 23 มกราคม 2561
โดย Jom07 อ 23 ม.ค. 2018 9:40 am บอร์ด MT23 - สุพรรษา พูลตา
2
29
อ 23 ม.ค. 2018 3:06 pm โดย AePongsak
งานประจำวันที่ 23 มกราคม 2561
โดย Four อ 23 ม.ค. 2018 9:39 am บอร์ด MT22 - อิษยา งามสอาด
1
21
อ 23 ม.ค. 2018 11:26 am โดย Four
สอบถามเกี่ยวกับการตั้งค่า Jabber phpBB3.2.x
โดย AePongsak จ 22 ม.ค. 2018 5:54 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
0
15
จ 22 ม.ค. 2018 5:54 pm โดย AePongsak
เสือชีตาห์ Vs โปรแกรมเมอร์
โดย Before Dong จ 22 ม.ค. 2018 11:14 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
29
จ 22 ม.ค. 2018 11:31 am โดย Before Dong
งานประจำวันที่ 22 มกราคม 2561
โดย Parichat จ 22 ม.ค. 2018 9:57 am บอร์ด MT21 - ปาริชาติ รัตโณภาส
1
8
จ 22 ม.ค. 2018 7:20 pm โดย Parichat
งานประจำวันที่ 22 มกราคม 2561
โดย Four จ 22 ม.ค. 2018 9:48 am บอร์ด MT22 - อิษยา งามสอาด
1
34
จ 22 ม.ค. 2018 11:23 am โดย Four
งานประจำวันที่ 22 มกราคม 2561
โดย Jom07 จ 22 ม.ค. 2018 9:47 am บอร์ด MT23 - สุพรรษา พูลตา
2
23
จ 22 ม.ค. 2018 11:01 am โดย AePongsak
งานประจำวันที่ 19 มกราคาม 2561
โดย Parichat ศ 19 ม.ค. 2018 8:52 am บอร์ด MT21 - ปาริชาติ รัตโณภาส
1
8
ศ 19 ม.ค. 2018 7:33 pm โดย Parichat
งานประจำวันที่ 19 มกราคม 2561
โดย Jom07 ศ 19 ม.ค. 2018 8:43 am บอร์ด MT23 - สุพรรษา พูลตา
1
26
ศ 19 ม.ค. 2018 9:20 am โดย Jom07
งานประจำวันที่ 19 มกราคม 2561
โดย Four ศ 19 ม.ค. 2018 8:42 am บอร์ด MT22 - อิษยา งามสอาด
4
25
ศ 19 ม.ค. 2018 6:43 pm โดย Four
ตัวแปรชนิด Tuple
โดย Four พฤ 18 ม.ค. 2018 5:18 pm บอร์ด Python Knowledge
0
40
พฤ 18 ม.ค. 2018 5:18 pm โดย Four
ขอสอบถามเรื่องความแตกต่างของฟังก์ชั่นvariant_pow()กับฟังก์ชั่น pow()
โดย Parichat พฤ 18 ม.ค. 2018 1:58 pm บอร์ด Programming - PHP
0
35
พฤ 18 ม.ค. 2018 1:58 pm โดย Parichat
อยากได้โปรแกรม command แบบ cmd ที่เก็บ history ได้ค่ะช่วยเเนะนำหน่อย
โดย thatsawan พฤ 18 ม.ค. 2018 11:18 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
66
พฤ 18 ม.ค. 2018 7:18 pm โดย thatsawan
0vsNULL
โดย Before Dong พฤ 18 ม.ค. 2018 10:32 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
49
พฤ 18 ม.ค. 2018 2:51 pm โดย Before Dong
งานประจำวันที่ 18 มกราคม 2561
โดย Parichat พฤ 18 ม.ค. 2018 9:38 am บอร์ด MT21 - ปาริชาติ รัตโณภาส
1
14
พฤ 18 ม.ค. 2018 7:16 pm โดย Parichat