Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > การเขียน PHP OOP แบบนี้มันถูกต้อง หรือว่าช่วยประโยชน์อะไรไหมค่ะ



 

การเขียน PHP OOP แบบนี้มันถูกต้อง หรือว่าช่วยประโยชน์อะไรไหมค่ะ

 



Topic : 068453



โพสกระทู้ ( 480 )
บทความ ( 0 )



สถานะออฟไลน์




หัดเขียน PHP OOP มานานแล้ว แต่เห็นโค๊ดคนอื่น ดูย๊ากยากค่ะ
พอดูโค๊ดตัวเอง เหมือนแค่เอาโค๊ดมารวมกันให้เป็น class เดียวเฉยๆ
แต่ก็ดูเหมือนไม่ต่างกับการเขียนแบบฟังชั่นเลยค่ะ

อยากรู้ว่าที่เราเขียนมาประมาณนี้ มันถูกต้องไหม แล้ว มีประโยชน์ไหม หรือว่าอย่างไรช่วยแนะนำทีคะ

Code (PHP)
<?php 
class Users{
	
	public $getIdUser;

	function __construct(){
		$this->getIdUser = @$_REQUEST['getIdUser'];

	}
	
	//User Email
	public function getUserEmail($getIdUser){
		global $db;
		$result = $db->sql_query("SELECT userEmail FROM nrv_users WHERE idUsers=".$this->getIdUser."");
		$row = $db->sql_fetchrow($result);
		$userEmail = $row['userEmail'];
        echo $userEmail; 
	}
	
	//User Full Name
	public function getUserFullName($getIdUser){
		global $db;
		$result = $db->sql_query("SELECT userFullName FROM nrv_users WHERE idUsers=".$this->getIdUser."");
		$row = $db->sql_fetchrow($result);
		$userFullName = $row['userFullName'];
        echo $userFullName; 
	}
	
	//User Active
	public function getUserActive($getIdUser){
		global $db;
		$result = $db->sql_query("SELECT userActive FROM nrv_users WHERE idUsers=".$this->getIdUser."");
		$row = $db->sql_fetchrow($result);
		$userActive = $row['userActive'];
        echo $userActive; 
	}
	
	//User Status
	public function getUserStatus($getIdUser){
		global $db;
		$result = $db->sql_query("SELECT userEmail FROM nrv_users WHERE idUsers=".$this->getIdUser."");
		$row = $db->sql_fetchrow($result);
		$userStatus = $row['userStatus'];
        echo $userEmail; 
	}
	
	
	//User Telephone
	public function getUserTel($getIdUser){
		global $db;
		$result = $db->sql_query("SELECT userTelephone FROM nrv_users WHERE idUsers=".$this->getIdUser."");
		$row = $db->sql_fetchrow($result);
		$userTelephone = $row['userTelephone'];
        echo $userTelephone; 
	}
	
	//User Depart
	public function getUserDepart($getIdUser){
		global $db;
		$result = $db->sql_query("SELECT userDepart FROM nrv_users WHERE idUsers=".$this->getIdUser."");
		$row = $db->sql_fetchrow($result);
		$userDepart = $row['userDepart'];
        echo $userDepart; 
	}
	
	//User Position 
	public function getUserPosition($getIdUser){
		global $db;
		$result = $db->sql_query("SELECT userPosition FROM nrv_users WHERE idUsers=".$this->getIdUser."");
		$row = $db->sql_fetchrow($result);
		$userPosition  = $row['userPosition'];
        echo $userPosition; 
	}
	
	
}
?>





Code (PHP)
<?php 
require_once("class_users.php");
	$rUser=new Users();
	$rUser->getUserEmail(1);
	$rUser->getUserActive(1);
	$rUser->getUserDepart(1);
	$rUser->getUserFullName(1);
	$rUser->getUserPosition(1);
	$rUser->getUserStatus(1);
	$rUser->getUserTel(1);
?>




Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-10-26 14:39:31 By : Avrill View : 1582 Reply : 6
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ใน function จะเป็นการ return ครับ ไม่ควร echo ครับ ว่าแต่ทำไมถึงเขียน function ซ้ำ ๆ ครับ ทั้งที่สามารถสามาถรวมเป็น function เดียวกันได้ครับ เพียงแต่มีได้หลาย property ก็พอครับ


Go to : สอนการเขียน PHP กับ OOP (Object Oriented Programming) ผ่าน VDO ออนไลน์






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-26 21:29:33 By : webmaster
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (PHP)
	public function getUser($getIdUser){
		global $db;
		$result = $db->sql_query("SELECT * FROM nrv_users WHERE idUsers=".$this->getIdUser."");
		$row = $db->sql_fetchrow($result);
		$this->name = $row['userName'];
		$this->address = $row['userAddress'];
		$this->email = $row['userEmail'];
	}


ประมาณนี้ครับ จากนันก็สามารถเรียกใช้ Property ->name และอื่น ๆ ได้เลยครับ ไม่ต้อง Query หลายรอบครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-26 21:33:46 By : webmaster
 

 

No. 3



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

เขียนได้ไม่ผิดคับ แต่ประโยชน์ของ oop จริงๆ ต้องดูหลายๆข้อครับ
เช่น ใช้ได้หลายครั้ง คุณเขียนตั้งยาว แต่ใช้ครั้งเดียว มันไม่ค่อยคุ้มกับเวลาที่เสียไป
เช่น ขยายได้ (ถึงไม่จำเป็น) บางกรณี ออกแบบให้ extends override ได้ เท่ากับเราลดโค้ดลงเวลาต้องการคลาสที่แตกต่างจากคลาสหลัก

อย่างเช่นคลาสนี้ มันทำงานหนักเกินไป เราต้องดูความเป็นจริงว่าเวลาเราเรียกข้อมูลผู้ใช้ เรามักใช้ข้อมูลหลายๆ อย่างพร้อมกัน การจะเอาข้อมูลหลายอย่าง ต้องคิวรี่หลายครั้ง มันกินทรัพยากรคับ

Code (PHP)
class User{
	public $id;
	public $username;
	public $email;

	public function __construct($id)
	{
		$sql = 'ดึงข้อมูลทั้งหมด';
		// แล้วมาเก็บไว้ใน property
	}
}

$User = new User(55);
echo $user->username.' '.$user->email;



ประวัติการแก้ไข
2011-10-26 21:38:39
2011-10-26 21:39:31
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-26 21:38:09 By : pjgunner.com
 


 

No. 4



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

อีกอย่างนะคับ การสร้างคลาส user หมายถึงว่า object user เป็นเรื่องการมองวัตถุ สิ่งของ
ถ้าคุณทำคลาส user แบบที่ว่านี้ก็ไม่ผิด

แต่การมองแบบวัตถุ คือ user คือ สิ่ง 1 อย่าง
การที่เราใช้คลาสเมธอดเพื่อดึง ข้อมูลของคนไหนก็ได้ เพียงต้องระบุไอดีในเมธอด มันไม่ค่อย make sense

อย่างคลาส ที่ผมเขียนด้านบน ค่อนข้างเข้าใจง่ายกว่า ถ้าอย่างนั้นเราไม่รู้ว่า มีคลาสไว้เพื่ออะไร ทั้งที่เขียนดึงข้อมูลธรรมดาได้ไม่ลำบากอยู่แล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-26 21:44:57 By : pjgunner.com
 


 

No. 5



โพสกระทู้ ( 480 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณค่ะ ได้แนวคิดใหม่เลยค่ะ ไม่เก่ง OOP เลยค่ะ แต่ก็พยายามจะเขียนเป็น OOP ด้วยการลองผิดลองถูก
ยังสงสัยอยู่เลยค่ะ ถ้า select ออกมาแล้วมันต้อง วนลูป และมันต้องแทรก html เข้าไปด้วยเพื่อจัดรูปแบบ
ถ้าทำแบบนี้ไม่ผิดใช่ไหมค่ะ ก็เลยไม่เข้าใจว่าเราจะเขียน OOP ไปทำไมในเมื่อมันก็เขียนเหมือนเดิม
ตอนนี้พยามที่จะเขียน OOP ในทุกๆงาน แต่ยังเขียนผิดหลักการอยู่เลยค่ะ ฮาาาา
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-12 09:07:20 By : Avrill
 


 

No. 6



โพสกระทู้ ( 480 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : webmaster เมื่อวันที่ 2011-10-26 21:33:46
รายละเอียดของการตอบ ::
แล้วถ้าแบบนี้ผิดหลักการไหมค่ะ

public function get_client_data($d,$cid){
global $db;
$result = $db->sql_query("SELECT ".$d." FROM clients WHERE idClient='".$this->cid."' ");
$row = $db->sql_fetchrow($result);
$d = $row[$d];
echo $d;

}

เวลาเอาไปใช้ ก็ <?php $client->get_client_data('name',$cid)?>

$d กำหนดเป็นชื่อฟิลด์ข้อมูล จะว่าไปแล้วมันก็สะดวกดีค่ะ แต่ไม่รู้ถูกต้องหรือเปล่า


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-12 09:12:16 By : Avrill
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การเขียน PHP OOP แบบนี้มันถูกต้อง หรือว่าช่วยประโยชน์อะไรไหมค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่