Category: Uncategorized

การเขียน PHP แบบ OOP ตอนที่ 2

No Comments

April 2, 2013 at 2:47 pmCategory:php | Uncategorized

การเขียน PHP แบบ OOP ตอนที่ 2

ในตอนที่แล้ว ภาษา PHP: การเขียนแบบ OOP ตอนที่ 1   เป็นเนื้อหาเกี่ยวกับการสร้าง class และ object เบื้องต้นในครั้งนี้จะพูดถึง การสร้าง method get กับ set

โดยเริ่มจากโค้ดจากตอนที่แล้วโดยเปลี่ยนโค้ดดังนี้


<?
class Student{

private $firstName;
private $lastName;

public function display()
{
$display = 'FistName: ' . $this->firstName;
$display .= '<br/>';
$display .= 'LastName: ' . $this->lastName;
return $display;
}

public function setFirstName($name)
{
$this->firstName = $name;
}

public function setLastName($name)
{
$this->lastName = $name;
}

public function getFirstName()
{
return $this->firstName;
}

public function getLastName()
{
return $this->lastName;
}
}

เมื่อลองรันไฟล์ index.php ที่ทำมาจากตอนก่อนก็จะได้ดังนี้

php oop ตอน 2

สังเกตว่าโค้ดใน Class Student มีการเปลี่ยน modifier จาก public เป็น private  เพื่อไม่ให้ object ที่สร้างขึ้นไม่สามารถอ้างอิง member fistName และ lastName หรือเปลี่ยนแปลงค่าได้โดยตรงจึงทำการสร้าง method get และ set ขึ้นมาตามโค้ด

เมื่อลองแก้ไฟล์ index.php ตามโค้ดต่อไปนี้


<?php
require 'class.Student.inc';
echo '<h2>Test Class Student</h2>';
$student = new Student();

echo '<h2>Set Property Class Student</h2>';
$student->setFirstName('Thaicoding');
$student->setLastName('.Com');
echo '<pre>' . print_r($student) . '</pre><br/>';

echo '<h2>Function Display</h2>';
echo $student->display();

echo '<h2>Function get FirstName</h2>';
echo $student->getFirstName();

echo '<h2>Function get LastName</h2>';
echo $student->getLastName();
?>

เมื่อลองรันไฟล์ index.php ก็จะได้ดังรูป

ภาษา PHP: การเขียนแบบ OOP

สังเกตว่า method setFirstName กับ setLastName จะทำการกำหนดค่า member firstName และ lastName ตามค่าที่ส่งเข้าโดย object จะสามารถทำการเรียกใช้งานให้ดูตัวอย่างในไฟล์ index.php คือ $student->setFirstName(‘Thaicoding’);

ส่วน method get นั้นก็แค่ทำการ return ค่า member ที่ต้องการออกมาให้กับ object ที่เรียกใช้งาน ในการทำ method get set นั้นเพื่อป้องกันการเข้าถึง member ของ object ของ class โดยตรงหรือที่เรียกว่า Encapsulation เพื่อให้คนที่เอา class ไปใช้งานนั้นไม่ทำการอ้างอิงถึงจนทำให้เกิดความผิดพลาดของการทำงานของโปรแกรมเกิดขึ้น

ใน php นั้นจะมี magic method ของ _get กับ _set อยู่แต่ในเบื้องต้นนี้ผมเขียนบทความขั้นพื้นฐานก่อนแล้วค่อยหาโอกาสเขียนบทความในรายละเอียดต่อไป

Download SourceCode

Tags: , , , , ,

ภาษา C#.net – การแปลงข้อมูลจาก DataReader ให้เป็น DataTable

No Comments

December 10, 2012 at 3:20 pmCategory:ASP.NET | C# | Uncategorized

ในบางครั้งในการใช้ข้อมูลจากฐานข้อมูลนั้นเมื่อทำการ query มาแล้วเราก็ต้องการเก็บข้อมูลไว้สักที 1 แล้วนำไปใช้เมื่อต้องการใน .net นั้นมีตัวแปรชนิด 1 ที่ชื่อว่า DataTable ซึ่งมันจะเปรียบเสมือนว่ามีข้อมูลเป็นตารางตามข้อมูลและเงื่อนไขที่เรากำหนดไว้ในตอน query ซึ่งใน .net นั้นจะมีการแปลงแบบอัตโนมัติกับแบบที่เราต้องเขียนคำสั่งในการวนลูปเพื่อแปลง Reader ให้ไปเป็น DataTable เริ่มแรกให้ทำการสร้างไฟล์ webform ขึ้นมาใหม่ก่อนจากนั้นทำการสร้าง GridView ขึ้นมา 2 อันเพื่อที่จะทำการกำหนดข้อมูลใน Grid โดย DataTable ทั้ง 2 แบบ จากนั้นก็ไปในส่วนของ code behind เพื่อทำการสร้างฟังก์ชั่น 2 อันที่มีชื่อว่า ReaderToDataTableAuto และ ReaderToDataTableManual

ภาษา c#.net

สร้างไฟล์ webform ขึ้นมาใหม่

Read More…

Tags: , , , ,

เทคนิคการใช้ netbean เขียน php

No Comments

July 11, 2012 at 1:35 pmCategory:php | Uncategorized | ทั่วไป

หลายคนกำลังมองหา IDE สำหรับเขียน php กันอยู่ผมก็ได้แนะนำ ในบทความ IDE ในการพัฒนา php กันแล้วนะครับวันนี้ผมจะมาต่อกันด้วยเทคนิคการใช้ Netbean ซึ่งเวอร์ชั่นปัจจุบัน เป็น 7.1 แล้วครับ Netbean อาจจะเหมาะกับเครื่องคอมที่แรงหน่อย นะครับแต่หลังๆรู้สึกจะเร็วกว่าเวอร์ชั่นเก่าๆเยอะพอสมความนะครับ เอาละมาถึงเทคนิคที่ผมพอรู้กันบ้างว่ามีอะไร เริ่มแรกก็ Navigator ครับมันก็คือที่ทำทางนั้นเองจริงๆแล้วใน IDE ตัวใหญ่อย่าง Visual Studio นั้นมีอยู่นานแล้วและใช้ง่ายกว่าแต่มันคนละค่ายกันใน Netbean นั้นมีประโยนช์เวลาเราเขียน php เป็น class หรือฟังก์ชั่น จากรูปจะเห็นว่ามันจะเป็นชื่อฟังก์ชั่น และถ้ามีตัวแปรที่เป็น member ก็จะแสดงขึ้นมา เวลาเราดับเบิ้ลคลิกมันก็จะแสดงที่ฟังก์ชั่นหรือ member เลย

IDE ในการพัฒนา php

Read More…

Tags: , , ,