• PHP

    OOP ซีรี่ย์ – The $this keyword

    สั้นๆง่ายๆ คำว่า $this นี่ไว้ใช้สำหรับเรียกฟังก์ชั่นหรือตัวแปรภายในคลาส  ดอตอยอ ดูตัวอย่าง View the code on Gist. แค่นี้แหละ ไม่มีคำอธิบายมากกว่านี้ เพราะหน้าที่มันมีแค่นี้ ถามว่าทำไมไม่เรียกมันตรงๆ คือไม่ต้องมี $this-> มาคั่นข้างหน้าน่ะ? จากคำอธิบายที่อ่านๆมา เขาบอกว่า เอาคำว่า $this-> มาคั่นหน้าฟังก์ชั่นหรือตัวแปรสักหน่อย เพื่อจะได้สังเกตุง่ายๆว่า เนี่ยตัวแปรนี้มันอยู่ในคลาสนี่แหละ เนี่ยฟังก์ชั่นนี้มันอยู่ในคลาสนี่แหละ ไม่ต้องไปหาไกล มันบอก scope พี่ ซาโขบบบบบบ ใจ๋ ผมว่านะถ้าเขาจะทำให้ไม่ต้องมี $this-> เขาก็น่าจะทำได้นะ ตอนสร้างภาษา แต่จากเหตุผลที่เขาให้มา ผมยอมรับได้นะ ที่บอกว่าเพื่อให้เราหาฟังก์ชั่นได้ง่ายขึ้น เพราะรุ้ว่ามันอยู่ในคลาสนี้ ผมให้ผ่าน คุณลองนึกถึงภาพระบบใหญ่ๆที่มัน include ไฟล์เข้ามาทีเป็นสิบ หาฟังก์ชั่นกันมึน ว่ามันมาจากไฟล์ไหน เอาล่ะมีข้อสังเกตให้สังเกตุ View the code on Gist. ตัวแปรเมื่อถูกเรียกด้วย $this จะไม่มี […]

    READ MORE
  • General

    OOP ซีรี่ย์ – Classes and objects

    เมื่อเราย่างเท้าเข้าสู่โลกของการเขียนโปรแกรมเชิงวัตถุ (อูววววว) คำที่เราจะได้ยินจนชำนาญคือคำว่า class และ object คลาสก็คือโค้ดก้อนหนึ่งที่ถูกหุ้มด้วยคำว่า  class View the code on Gist. ถ้าจะอธิบายตามหลักการก็คือ ให้เราจินตนาการทุกอย่างที่จะเกิดขึ้นในระบบเราเป็นคน เช่น ถ้าหากในระบบเราจะต้องมีอะไรที่ทำเกี่ยวข้องกับไฟล์ เราก็สร้างคนๆหนึ่งขึ้นมาในจินตนการชื่อว่า ไอ้ฟาย ไอ้ฟายนี่จะทำหน้าที่ทุกอย่างที่เกี่ยวข้องกับไฟล์ ใครอยากสร้างไฟล์ให้เรียกไอ้ฟาย ใครอยากได้พาธของไฟล์ถามไอ้ฟาย  ซึ่งถ้าหากมีคำถามว่า แล้วเราจะให้ไอ้ฟายมันทำอะไรได้บ้าง  ตอบได้อย่างเดียวเลย จะไปรู้เรอะ ในงานเขียนโปรแกรมคุณคือพระเจ้าที่จะสร้างให้คนๆนั้นทำไอ้นี่ได้ ทำไอ้นี่ไม่ได้ แล้วพระเจ้าดูจากไหนว่าจะต้องให้ไอ้ฟายมันทำอะไรได้บ้าง ก็ดูเอาจากว่าโปรแกรมมันต้องการอะไรบ้าง ถ้าโปรแกรมที่เขียนไม่ได้มีการอัปโหลดไฟล์ ก็ไม่ต้องเขียนโค้ดให้ไอ้ฟายมันอัปโหลดได้ ไม่ต้อง เขียนเผื่ออนาคตได้มั้ย! ไม่ต้อง คำว่าเผื่ออนาคตคือขยะ เอาเวลาไปนั่งเกาไข่เถอะ แล้ว object คืออะไร? object คือตัวแปรที่ใช้คำสั่ง new มาจาก class  ให้คิดเสียว่า class มันคือต้นแบบเอาไปใช้ตรงๆไม่ได้ (ถามว่าทำไมไม่ได้ เอ้า ก็คนออกแบบภาษาเขากำหนดมางั้น เรามันผู้ตาม ทำตัวเชื่องๆ) ต้องก้อปปี้ไปใช้ผ่านคำสั่ง new […]

    READ MORE
  • PHP

    OOP ซีรี่ย์

    นับจากบทความบทนี้ไปผมจะเขียนเรื่อง OOP ให้อ่านซึ่งได้รับแรงบันดาลใจมาจาก http://phpenthusiast.com/object-oriented-php-tutorials  เขาเขียนอธิบายเรื่องราวของ OOP ได้อ่านง่าย เลยคิดว่า กูเอามั่ง หัวข้อที่จะเขียนทั้งหมดมีอยู่ตามนี้  หากใครเข้ามาอ่านแรกๆมันจะไม่มีลิ้งก์นะครับ ต่อเมื่อผมเขียนเรื่องราวนั้นๆแล้ว จะมาแก้หน้านี้แล้วทำลิ้งก์แต่ละหัวข้อไปยังเนื้อหา Classes and objects The $this keyword Chaining methods & properties Public vs. Private Magic methods Inheritance in PHP Abstract classes & methods Interfaces Polymorphism Type hinting Static methods & properties Namespace Trait มี 2 หัวข้อสุดท้ายที่ในลิ้งก์นั้นไม่มี แต่ผมเพิ่มเข้ามา เพราะว่ามันก็มีอยู่ใน OOP ของ PHP ทีนี้ก่อนอื่นเรามาดูกันก่อนซิว่า ทำไมโลกนี้มันถึงต้องมี OOP […]

    READ MORE
  • General

    ติดตั้ง moodle แล้วเออเร่อฐานข้อมูล mysql – version 5.5.30 is required and you are running 5.5.5.10.1.25

    ไม่เข้าใจว่าทำไมมันต้องเออเร่อบอกว่าฐานข้อมูลของเราใหม่กว่า แต่วิธีการแก้ปัญหานี้ไม่ต้องอัปเกรดฐานข้อมูลอะไรนะครับ แค่ แก้ไฟล์ config.php ระบุตรง database ให้เป็น “mariadb” แค่นี้ก็หาย อ้างอิง : https://moodle.org/mod/forum/discuss.php?d=330272

    READ MORE
  • เพราะชีวิตไม่ได้มีแค่เรื่องเขียนโปรแกรม

    ผมฝึกภาษาอังกฤษโดยใช้ youtube

    ตอนที่ผมอยู่บ้าน ไม่ได้ฝึกภาษาอังกฤษกับฝรั่งตัวเป็นๆ ผมก็ได้อาศัย youtube เป็นเครื่องมือสำคัญ

    READ MORE
  • เพราะชีวิตไม่ได้มีแค่เรื่องเขียนโปรแกรม

    คนล้อที่สวนจตุจักร

    ผมคิดถึงคำพูดของพระพุทธเจ้าอยู่คำพูดหนึ่ง

    “อย่าทำตัวเอง ให้เป็นศัตรูของตัวเอง”

    READ MORE
  • Laravel

    Laravel ตอนที่ 9 HTTP Verb

    http verb คำนี้เราอาจจะไม่คุ้นเคย แต่อันที่จริงแล้วเราใช้มันบ่อยมาก เราใช้มันในนาม method ของฟอร์ม ใช่แล้วครับ มันคือ GET, POST เรารู้จักอยู่ 2 ตัว แต่มันไม่ได้มีแค่ 2 นะครับ มันมีมากกว่านั้น และ Laravel ก็ใช้มันซะคุ้ม อ่านรายละเอียดด้านใน

    READ MORE
  • PHP

    บางครั้งเราก็ทำให้ชีวิตเรายากเอง

    ฟังก์ชั่น str_pad เป็นฟังก์ชั่นที่ถูกสร้างมาเพื่องานลักษณะ เติมตัวอักษรเข้าไปข้างหน้าตัวอักษร เพื่อให้ตัวอักษรครบจำนวนที่ต้องการ

    READ MORE
  • Laravel

    Laravel ตอนที่ 8 ไดอะแกรมการทำงานของ Laravel

    เพื่อเป็นการทำความเข้าใจว่า Laravel นั้นมันโหลดไฟล์ขึ้นมาทำงานอย่างไร และโครงสร้างแบบ MVC มันถูกเก็บไว้อย่างไร

    READ MORE
  • Laravel

    Laravel ตอนที่ 7 เริ่มเขียน

    เมื่อเราจะสร้างเว็บด้วย Laravel Framework มันมีลำดับสิ่งที่เราจะต้องทำ แตกต่างไปจากการสร้างเว็บโดยไม่ได้ใช้ Laravel Framework ลองมาดูลำดับสิ่งที่จะต้องทำกันครับ ว่าจะต้องทำอะไรตรงไหน จากไหนไปไหน

    READ MORE