เริ่มต้นเขียนโปรแกรม Chapter 2 (Class Methods)

บทความนี้จะกล่าวถึงการ เริ่มต้นเขียนโปรแกรม และใช้งาน Class ซึ่งการใช้งานแบบ Class มีมาอย่างยาวนานมากแล้ว Developers บางท่านยังไม่นิยมใช้ Class เพราะคิดว่า

เริ่มต้นเขียนโปรแกรม

เริ่มต้นเขียนโปรแกรม

บทความนี้จะกล่าวถึงการใช้งาน Class ซึ่งการใช้งานแบบ Class มีมาอย่างยาวนานมากแล้ว Developers บางท่านยังไม่นิยมใช้ Class เพราะคิดว่ายาก หรือปัจจัยอื่นเกี่ยวข้องหลายอย่าง ลองเปิดใจและเรียนรู้กับมัน เราจะได้ในส่งที่เป็นสากล ใส่ตัวเรามากยิ่งขึ้น

ผู้ใช้น่าจะรู้จักคำว่า Class โดยไม่มากก็น้อย ปัจจุบัน คำว่า Class มีผลกระทบเป็นอย่างมากในด้านการเขียนโปรแกรม บางทีการตั้งชื่อ Class ก็จะสามารถบ่งบอกถึงวิธีการทำงานของเราได้เช่นกัน เรามาดูตัวอย่างของคำว่า Class กัน

<?php
/*Stage I*/
class connectDatabase{
    /*php mysql connect*/
}

/*Stage II*/
class ServiceAuth extends connectDatabase{
    /*php mysql connect extends*/
}
?>

ในบทความนี้จะกล่าวถึงการใช้ Class อยู่สองส่วนคือ Class แม่ และ Class ลูก ใช้ภาษาบ้านๆกันไปเลยทีเดียว xD ทำไมเราต้องใช้งาน Class เพราะว่ามันจะสะดวกในการเขียนโปรแกรมอย่างมาก หากต้องการใช้คำสั่งซ้ำๆ หรือเข้าใช้งานบ่อยๆ หรือเขียนให้เป็นสัดส่วนแบ่งการทำงานอย่างเป็นระบบ Class เป็นอีกตัวเลือกที่สามารถทำให้เป็นระบบได้เช่นกัน

ใน Stage I เรียกว่า Class แม่ คือเป็น Class ที่เราสามารถเรียกใช้งานได้ปกติทั่วไป แต่ใน Stage II หากเราเรียกใช้ Class นี้ เราก็สามารถใช้ Methods ที่อยู่ใน Class Stage I ได้เพราะว่ามันเป็น Class ลูกของ Stage I

เครื่องหมายที่เห็นทั่วไปใน Class :: คืออะไร?

ชื่อเต็มๆ ตามรากศัพท์ในการเขียนคือ Scope Resolution Operator (::) แต่ผมมักจะใช้ หรือติดมากเรียกว่า เครื่องหมาย “ต่อคู่” ซึ่งสามารถเรียกใช้งาน Methods ที่อยู่ใน Class ได้เช่นกัน

สิ่งสำคัญ อะไรบ้างที่อยู่ใน Class คือ 1. ตัวแปร์ที่สามารถเข้าถึง ทุกๆ Methods ใน Class นี้ได้ บางครั้งตัวแปรนี้ถูกเรียกว่า Global สำหรับการใช้ :: คือการที่ Class ไม่ต้อง new object การที่ไม่ต้อง new object คืออะไร มันก็คือ

<?php
    //new object
    $there = new connectDatabase();
    $there->methods_name();
    //not new object
    $there = connectDatabase::methods_name();
?>

จะเห็นได้ว่า Mark // new object นั้นจะต้องทำการ new เพื่อทำการเรียกใช้ methods_name(); แต่สำหรับ //not new object นั้นไม่จำเป็นต้อง new object มารองรับ แบบที่สองง่ายใช่ไหมล่ะ? แต่หากไม่มีการประมวลอะไรมากหรือ แค่ดึงควรจะใช้แบบ :: กันดีกว่าเพราะว่าจะไม่ทำให้เปลืองทรัพยากร แต่รูปแบบการเขียนต่างกันคือ

<?php
class betaAuth{
    public function ignoreAuth($params){
       return '<script>window.location.href=\''.$params.'\'</script>';
    }
}

class alphaAuth{
    static function ignoreAuth($params){
        return '<script>window.location.href=\''.$params.'\'</script>';
    }
}
    //Stage 3
    $there = new betaAuth();
    echo $there->ignoreAuth('http://www.ofezsoft.com');

    //Stage 4
    echo alphaAuth::ignoreAuth('http://www.ofezsoft.com')
?>
ลองสังเกตดูนะค่ะว่า? Methods แบบไหนควรเลือกใช้งาน แบบ Scope Resolution Operator (::) Methods แบบไหนควรเลือกใช้ แบบต้อง new object

แล้ว private function มีหน้าที่อะไร?

หลายๆคนคงเจอกับคำถามนี้และสงสัยกัน private คือ เฉพาะเจาะจง เช่นคนในประเทศไทยเท่านั้น ที่ใช้งาน Methods นี้ได้ ดังตัวอย่างเช่น

<?php
class metaAlet{
    private function __recallTime($params){
        return strtotime(date('Y-m-d H:i:s', strtotime('+7 days', $params)));
    }
    public function timerMsg(){
        return $this->__recallTime(date('Y-m-d'));
    }
}

    $there = new metaAlert();
    echo $there->timerMsg();
?>

คือแบบว่า หากจะใช้งาน Methods ที่ชื่อ __recallTime() นั้น ต้องทำงานภายใน Class อย่างเดียว หรือ new Object ใหม่เท่านั้น หากข้าม Extends ก็ไม่ได้



ประการด่านสุดท้ายของบทความนี้

<?php
class RealTimeAsset{
    public $asset;
    public function __construct(){
        //Realtime when to used this class.
        $this->asset['isSiteName'] = 'ofezsoft';
    }
}
    $there = new RealTimeAsset;
    echo $there->asset['isSiteName'];
    //output ofezsoft
?>
__construct() คืออะไร มันก็คือสิ่งที่ หากเราทำการเรียกใช้ Class นี้ มันจะทำการเสนอตัวเองว่า ผมผมผมทำก่อน????? เช่น ตัวอย่างด้านบนที่ทำการ highlight ไว้จะหมายถึง เว็บนี้ชื่อ ofezsoft ทุกๆครั้งหากมีการเรียกใช้ Class ดังกล่าว มันจะเสนอตัวเองให้ ตัวแปรที่ชื่อ asset[‘isSiteName’] เป็นไงกันบ้างค่ะ? สำหรับ “เริ่มต้นเขียนโปรแกรม Chapter 2 (Class Methods)” บทความนี้ ฝากติดตามกันยาวๆ เลยนะค่ะ จะอัพเดดเรื่อยๆ ค่ะ

เริ่มต้นเขียนโปรแกรม

ผู้เขียน: Tariyo

เผยแพร่ ความรู้ เกี่ยวกับการเขียนโปรแกรม เบื้องต้น รวมไปถึงการใช้งานจริง และเทคนิค ต่างๆ เทคโนโลยีที่เกี่ยวข้อง สอนสร้างโปรแกรม (Website), สอนสร้าง API, SEO, Facebook, Line, Social, รับทำเว็บไซต์, รับทำเว็บ App