ลองคิดถึง function 2 function ที่มีการโยน parameter กันไปมาดูนะครับ แค่สองฟังชั่นอาจจะดูไม่น่าจะเป็นปัญหาอะไร แต่ถ้ามี 100 function ที่สัมพันธ์กัน ต้องโยน parameter ตัวเดียวกันซ้ำๆ ไปยัง function ทุกๆ ฟังชั่นการเขียนโปรแกรมจะน่าเบื่อขนาดไหน
f1($a,$b);
f2($a,1000,100);
f3($a,20,'test');
f4($a,30,'bbb');
ในการแก้ปัญหาข้างต้น เราอาจจะใช้ ตัวแปร global แต่ถ้าเกิดชื่อตัวแปร global ที่เราเลือกใช้เกิดไปซ้ำกับตัวแปรอื่นๆ ที่เราตั้งขึ้นมาใหม่เพราะไม่ได้ระวังจะเกิดปัญหาหา bug ยากเพราะตัวแปร global
ที่เราใช้ใน function เรามองจาก main program ไม่เห็นครับ
การใช้ตัวแปรที่เรียกว่า object member, class member ภายในคลาสที่เราสร้างขึ้น
จะทำให้ลดการส่งตัวแปร parameter ซ้ำ และไม่ได้ใช้ตัวแปร global จึงทำให้โปรแกรมมีความกระชับรัดกุม
และปัญหาน้อยกว่าใช้ตัวแปร global ครับ