Passing By Reference and Passing By Value และ Global

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Passing By Reference and Passing By Value และ Global

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

Passing By Reference and Passing By Value และ Global
วันนี้มาเขียนโน๊ตไว้ ซักหน่อย เรื่อง
Passing By Reference and Passing By Value และ Global
กับการสร้าง Function ขึ้นใช้งาน
Passing By Value ทุกคนคงใช้กันอยู่ บ่อยๆ แล้ว แต่ถ้าเอา 3 ตัวนี้มารวมกัน แบบผม (แอบโง่)
ก่อนอื่นมาทำความรู้จัก Passing By Reference ให้ดีเสียก่อนนะครับ
มันคือการอ้างถึงตัวแปลด้วยตำแหน่ง (งงกันไปใหญ่) ง่ะๆ มาดู ยกตัวอย่างด้วย โค้ดดีกว่า

โค้ด: เลือกทั้งหมด

<?php
function mindphp(&$var)
{
   $var++;
}

$a=5;
mindphp($a);
//ค่า  $a คือ 6 
?>
function ข้างบนนี้ให้ ผลเช่นเดียวกับ

โค้ด: เลือกทั้งหมด

<?php
function mindphp()
{
   global $a
   $a++;
}

$a=5;
mindphp($a);
//ค่า  $a คือ 6 
?>
จะ้เห็นว่าถ้าเราต้องการทำอะไรกับตัวแปลที่อยู่ ภายนอก function เราสามารถใช้ global หรือ การสร้าง function แล้ว Passing By Reference เอาก็ได้
ถามว่า แล้วแบบไหนจะยืดหยุ่นกว่า แน่นอนครับ Passing By Reference ยืดหยุ่นกว่า
ทีนี้ ถ้าเรา เอา Passing By Reference and Passing By Value และ Global มาอยู่รวมๆ กัน แบบนี้
จะได้ไหม ?

โค้ด: เลือกทั้งหมด

 
function a(&$a) {
 $a++;
  function b() {
    global $a;
    $a++;
 }

}
$a = 0;
a($a);
b();
echo $a;
ลองดูนะครับ $a จะได้เท่าไร แล้วถ้าเรียก function b() ก่อน a() จะเกิดอะไรขึ้น :-D
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 57