Passing By Reference and Passing By Value และ Global

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

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

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 23219
Joined: 22/09/2008 6:18 pm
Contact:

Passing By Reference and Passing By Value และ Global

Post by mindphp » 19/06/2009 2:20 am

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

Code: Select all

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

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

Code: Select all

<?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 มาอยู่รวมๆ กัน แบบนี้
จะได้ไหม ?

Code: Select all

 
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

Return to “Programming - PHP”

Who is online

Users browsing this forum: No registered users and 11 guests