PHP Code Vn

  • default color
  • black color

Search


Ads



Level 1 - Lập trình hướng đối tượng (P2)

E-mail Print PDF

Một đối tượng thường bao gồm trạng thái (thuộc tính) và hành động

1. Xác định đối tượng
Ví dụ:
- Lập trình viên là 1 đối tượng
- Con chó là 1 đối tượng


2. Xác định trạng thái (thuộc tính) [attribute (property)]
- Các trạng thái (thuộc tính) của lập trình viên là: Họ, tên, ngày sinh, quê quán, giới tính, email, điện thoại, kinh nghiệm, ưu điểm, nhược điểm, kỹ năng, tài khỏan...
- Các trạng thái (thuộc tính) của con chó là: Tên, màu lông , giống, đuôi, chân, tai, màu mắt .....


3. Xác định hành động

- Các hành động (behaviour) của lập trình viên: làm việc, ăn, ngủ, học, nghiên cứu, đi chơi, gửi tiền vào tài khỏan, rút tiền khỏi tài khoản
- Các hành động (behaviour) của con chó: sủa, vẫy tai, chạy, ăn
Ví dụ: Tạo lớp 'Lập trình viên'
Chúng ta tạo 1 tập tin có tên class.programer.php với nội dung sau:


2.1 Khai báo các thuộc tính của đối tượng

  1. //class.programer.php
  2. <?php
  3. class Programer {
  4. //Dinh nghia cac thuoc tinh cua doi tuong
  5. public $firstName; // Ho
  6. public $lastName; // Ten
  7. public $birthday; // Ngay sinh
  8. public $sex; //Giới tính
  9. public $email;
  10. public $phone; // dien thoai
  11. public $experienced; // Kinh nghiem
  12. public $advantage; // uu diem
  13. public $weakness; // nhuoc diem
  14. public $skill; // Ky nang
  15. }
  16. ?>
 

2.2 Tạo hàm cấu trúc cho class 

 

  1. //class.programer.php
  2. <?php
  3. class Programer {
  4. //Dinh nghia cac thuoc tinh cua doi tuong
  5. public $firstName; // Ho
  6. public $lastName; // Ten
  7. public $birthday; // Ngay sinh
  8. public $sex; //Giới tính
  9. public $email;
  10. public $phone; // dien thoai
  11. public $experienced; // Kinh nghiem
  12. public $advantage; // uu diem
  13. public $weakness; // nhuoc diem
  14. public $skill; // Ky nang
  15. // Tao ham cau truc cho class
  16. public function __construct($varLastName, $varBirthday)
  17. {
  18. $this->lastName = $varLastName;
  19. $this->birthday = $varBirthday;
  20. }
  21.  
  22. // In thông tin member
  23. public function printInfo()
  24. {
  25. $info = '<b>Thong tin lap trinh vien:</b>';
  26. $info .= '<br><b>Ten:</b> ' . $this->lastName;
  27. $info .= '<br><b>Ngay sinh:</b> ' . $this->birthday;
  28. return $info;
  29. }
  30. }
  31. ?>
 

Chúng ta tạo 1 tập tin có tên oop.php với nội dung sau:

  1. //oop.php
  2. <?php
  3. // Nhung file class.programer.php vao trang
  4. include('class.programer.php');
  5.  
  6. // Goi doi tuong Programer
  7. $objProgramer = new Programer('Hoang','14-02-1985');
  8.  
  9. // In ra thong tin cua lap trinh vien
  10. echo $objProgramer->printInfo();
  11. ?>
 
 

Chúng ta sẽ được kết quả như sau
Thong tin lap trinh vien:
Ten: Hoang
Ngay sinh: 14-02-1985


- Theo cấu trúc chuẩn của PHP chúng ta sẽ tạo 1 hàm cấu trúc cho class
public function __construct($varLastName, $varBirthday);


- Khi ta gọi khai báo đối tượng $objProgramer với cú pháp
$objProgramer = new Programer('Hoang','14-02-1985');


- Lúc đó 2 giá tri 'Hoang' và '14-02-1985' được gán vào 2 tham số $varLastName và $varBirthday.
Lệnh $this->lastName = $varLastName; sẽ gán giá trị $varLastName vào cho thuộc tính public $firstName; được khai báo phí trên
Tương tự lệnh $this->birthday = $varBirthday; cũng sẽ gán giá trị $varBirthday vào cho thuộc tính public $birthday; được khai báo phí trên


- Sau khi 2 tham số $varLastName và $varBirthday được gán cho 2 thuộc tính $firstName và $birthday, lúc này bạn có thể sử dụng tùy ý 2 giá trị này trong class bằng cú pháp $this-><tên thuộc tính>


vd:
$this->birthday;
$this->lastName;


- Khi đã có thông tin về đối tượng objProgramer bạn có thể in những thông tin đó ra bằng cách gọi hàm printInfo() trong class
echo $objProgramer->printInfo();


- Trong hàm prinInfo() của class Programer. Hàm này này lấy các giá trị đã được gán ở phía trên in ra kết quả
- Trong hàm tạo cấu trúc của class ta đã truyền được 2 giá trị cho 2 thuộc tính bây giờ ta sẽ tạo các hàm để truyền các giá trị cho các thuộc tính còn lại. Ví dụ ta tạo hàm lấy giá trị cho thuộc tính $firstName

 

  1. //class.programer.php
  2. <?php
  3. class Programer {
  4. //Dinh nghia cac thuoc tinh cua doi tuong
  5. public $firstName; // Ho
  6. public $lastName; // Ten
  7. public $birthday; // Ngay sinh
  8. public $sex; //Giới tính
  9. public $email;
  10. public $phone; // dien thoai
  11. public $experienced; // Kinh nghiem
  12. public $advantage; // uu diem
  13. public $weakness; // nhuoc diem
  14. public $skill; // Ky nang
  15. // Tao ham cau truc cho class
  16. public function __construct($varLastName, $varBirthday)
  17. {
  18. $this->lastName = $varLastName;
  19. $this->birthday = $varBirthday;
  20. }
  21. // Ham nhan gia tri cua firstName (Ho)
  22. public function setFirstName($varFirstName)
  23. {
  24. $this->firstName = $varFirstName;
  25. }
  26. // In thông tin member
  27. public function printInfo()
  28. {
  29. $info = '<b>Thong tin lap trinh vien:</b>';
  30. $info .= '<br><b>Ten:</b> ' . $this->lastName;
  31. $info .= '<br><b>Ngay sinh:</b> ' . $this->birthday;
  32. return $info;
  33. }
  34. }
  35. ?>
 

- Chúng ta thêm hàm setFirstName($varFirstName) hàm này có chức năng nhận giá trị và truyền cho thuộc tính public $firstName;.
- Và sau đó chúng ta thêm 1 dòng lệnh $info .= '<br><b>Ho:</b> ' . $this->firstName; vào hàm printInfo() để in ra họ của lập trình viên
- Chúng ta thêm dòng lệnh $objProgramer->setFirstName('Nguyen Van '); trang oop.php 1 chút để sử dụng được hàm setFirstName()

 

  1. //oop.php
  2. <?php
  3. // Nhung file class.programer.php vao trang
  4. include('class.programer.php');
  5.  
  6. // Goi doi tuong Programer
  7. $objProgramer = new Programer('Hoang','14-02-1985');
  8.  
  9. // Dua gia tri vao cho thuoc tinh $firstName trong Programer class
  10. $objProgramer->setFirstName('Nguyen Van');
  11.  
  12. // In ra thong tin cua lap trinh vien
  13. echo $objProgramer->printInfo();
  14. ?>
 

Tiếp theo chúng ta sẽ tiếp tục truyền giá trị vào cho từng thuộc tính còn lại

 

  1. //oop.php
  2. <?php
  3. /**
  4. * Zend Framework
  5. *
  6. * @category Training
  7. * @package Zend Framework Basic
  8. * @copyright Copyright (c) 2008 Zend Vietnamese Team (http://www.zend.vn)
  9. * @version $Id: class.programer.php 2008-02-10 01:35:30Z
  10. * @author Marsu (ZVN Founder team)
  11. *@email This e-mail address is being protected from spambots. You need JavaScript enabled to view it This e-mail address is being protected from spambots. You need JavaScript enabled to view it OR This e-mail address is being protected from spambots. You need JavaScript enabled to view it This e-mail address is being protected from spambots. You need JavaScript enabled to view it
  12. *
  13. */
  14. //Dinh nghia cac thuoc tinh cua doi tuong
  15. public $firstName = null; // Ho
  16. public $lastName; // Ten
  17. public $birthday = null; // Ngay sinh
  18. public $sex; //Gi?i tính
  19. public $email;
  20. public $phone; // dien thoai
  21. public $experienced; // Kinh nghiem
  22. public $advantage; // uu diem
  23. public $weakness; // nhuoc diem
  24. public $skill; // Ky nang
  25. // Tao ham cau truc cho class
  26. public function __construct($varLastName, $varBirthday)
  27. {
  28. $this->lastName = $varLastName;
  29. $this->birthday = $varBirthday;
  30. }
  31. // Ham nhan gia tri cua firstName (Ho)
  32. public function setFirstName($varFirstName) {
  33. $this->firstName = $varFirstName;
  34. }
  35. // Ham nhan gia tri cua sex (gioi tinh)
  36. public function setSex($varSex) {
  37. $this->sex = $varSex;
  38. }
  39.  
  40. // Ham nhan gia tri cua email
  41. public function setEmail($varEmail) {
  42. $this->email = $varEmail;
  43. }
  44.  
  45. // Ham nhan gia tri cua phone
  46. public function setPhone($varPhone) {
  47. $this->phone = $varPhone;
  48. }
  49.  
  50. // Ham nhan gia tri cua experienced
  51. public function setExperienced($varExperienced) {
  52. $this->experienced = $varExperienced;
  53. }
  54.  
  55. // Ham nhan gia tri cua experienced
  56. public function setAdvantage($varAdvantage) {
  57. $this->advantage = $varAdvantage;
  58. }
  59.  
  60. // Ham nhan gia tri cua weakness
  61. public function setWeakness($varWeakness) {
  62. $this->weakness = $varWeakness;
  63. }
  64.  
  65. // Ham nhan gia tri cua skill
  66. public function setSkill($varSkill) {
  67. $this->skill = $varSkill;
  68. }
  69.  
  70. // In thông tin member
  71. public function printInfo(){
  72. $info = '<b>Thong tin lap trinh vien:</b>';
  73. $info .= '<br><b>============================</b>';
  74. $info .= '<br><b>Ho:</b> ' . $this->firstName;
  75. $info .= '<br><b>Ten:</b> ' . $this->lastName;
  76. $info .= '<br><b>Ngay sinh:</b> ' . $this->birthday;
  77. $info .= '<br><b>Gioi tinh:</b> ' . $this->sex;
  78. $info .= '<br><b>Email:</b> ' . $this->email;
  79. $info .= '<br><b>Phone:</b> ' . $this->phone;
  80. $info .= '<br><b>Kinh nghiem:</b> ' . $this->experienced;
  81. $info .= '<br><b>Uu diem:</b> ' . $this->advantage;
  82. $info .= '<br><b>Nhuoc diem:</b> ' . $this->weakness;
  83. $info .= '<br><b>Ky nang:</b> ' . $this->skill;
  84.  
  85. return $info;
  86. }
  87. ?>
 

 

  1. //oop.php
  2. <?php
  3. /**
  4. * Zend Framework
  5. *
  6. * @category Training
  7. * @package Zend Framework Basic
  8. * @copyright Copyright (c) 2008 Zend Vietnamese Team (http://www.zend.vn)
  9. * @version $Id: oop.php 2008-02-10 01:35:30Z
  10. * @author Marsu (ZVN Founder team)
  11. *@email This e-mail address is being protected from spambots. You need JavaScript enabled to view it This e-mail address is being protected from spambots. You need JavaScript enabled to view it OR This e-mail address is being protected from spambots. You need JavaScript enabled to view it This e-mail address is being protected from spambots. You need JavaScript enabled to view it
  12. *
  13. */
  14. // Nhung file class.programer.php vao trang
  15. include('class.programer.php');
  16.  
  17. // Goi doi tuong Programer
  18. $objProgramer = new Programer('Hoang','14-02-1985');
  19.  
  20. // Dua gia tri vao cho thuoc tinh $firstName trong Programer class
  21. $objProgramer->setFirstName('Nguyen Van');
  22.  
  23. // Dua gia tri vao cho thuoc tinh $sex trong Programer class
  24. $objProgramer->setSex('Khong xac dinh');
  25.  
  26. // Dua gia tri vao cho thuoc tinh $email trong Programer class
  27. $objProgramer->setEmail(' This e-mail address is being protected from spambots. You need JavaScript enabled to view it This e-mail address is being protected from spambots. You need JavaScript enabled to view it ');
  28.  
  29. // Dua gia tri vao cho thuoc tinh $phone trong Programer class
  30. $objProgramer->setPhone('0908.115.113');
  31.  
  32. // Dua gia tri vao cho thuoc tinh $phone trong Programer class
  33. $objProgramer->setPhone('0908.115.113');
  34.  
  35. // Dua gia tri vao cho thuoc tinh $experienced trong Programer class
  36. $objProgramer->setExperienced('3 nam voi ........ Vo Lam Truyen Ky');
  37.  
  38. // Dua gia tri vao cho thuoc tinh $advantage trong Programer class
  39. $objProgramer->setAdvantage('nha^.u khong doi thu');
  40.  
  41. // Dua gia tri vao cho thuoc tinh $weakness trong Programer class
  42. $objProgramer->setWeakness('nha^.u xong, hay om cot den');
  43.  
  44. // Dua gia tri vao cho thuoc tinh $weakness trong Programer class
  45. $objProgramer->setWeakness('nha^.u say, hay om cot den');
  46.  
  47. // Dua gia tri vao cho thuoc tinh $skill trong Programer class
  48. $objProgramer->setSkill('sai dau danh do');
  49.  
  50. // In ra thong tin cua lap trinh vien
  51. echo $objProgramer->printInfo();
  52. ?>
 

Nguồn: http://zendvn.com/public/tutorials/zend-framework/6-level-1-lp-trinh-hng-i-tng-p2-.html

 

Level 1 - Lập trình hướng đối tượng (P1)

E-mail Print PDF

1. Lập trình hướng đối tượng là gì?

Lập trình hướng đối tượng (gọi tắt là OOP, từ chữ Anh ngữ object-oriented programming), hay còn gọi là lập trình định hướng đối tượng, là kĩ thuật lập trình hỗ trợ công nghệ đối tượng. OOP được xem là giúp tăng năng suất, đơn giản hóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm bằng cách cho phép lập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn. Ngoài ra, nhiều người còn cho rằng OOP dễ tiếp thu hơn cho những người mới học về lập trình hơn là các phương pháp trước đó.

Một cách giản lược, đây là khái niệm và là một nỗ lực nhằm giảm nhẹ các thao tác viết mã cho người lập trình, cho phép họ tạo ra các ứng dụng mà các yếu tố bên ngoài có thể tương tác với các chương trình đó giống như là tương tác với các đối tượng vật lý.

Những đối tượng trong một ngôn ngữ OOP là các kết hợp giữa mã và dữ liệu mà chúng được nhìn nhận như là một đơn vị duy nhất. Mỗi đối tượng có một tên riêng biệt và tất cả các tham chiếu đến đối tượng đó được tiến hành qua tên của nó. Như vậy, mỗi đối tượng có khả năng nhận vào các thông báo, xử lý dữ liệu (bên trong của nó), và gửi ra hay trả lời đến các đối tượng khác hay đến môi trường.

Read more...
 

Khóa học Zend Framework

E-mail Print PDF
Zend Framework là một thư viện các lớp được xây dựng trên nền tảng ngôn ngữ PHP, theo hướng OOP và được công ty Zend phát triển. Zend Framework được định hướng theo mô hình MVC và là một PHP framework ra đời khá trễ, chính vì vậy ZF đã thừa hưởng những tinh hoa của các framework khác và tránh khỏi những sai lầm của các framework trước đã mắc phải trong quá trình phát triển. Zend Framework có tính mềm dẻo, linh hoạt và dễ dàng tích hợp các thư viện PHP có sẵn. Zend Framework thường được ứng dụng vào các dự án Open Source lớn và các công ty có chứng chỉ CMMI (Capability Maturity Model Integration).
 
 Ưu điểm

1- ZF được viết theo kiểu OOP nên nó thừa hưởng các thế mạnh của kiểu viết này. Các lớp của ZF được BA (Business Analysis) rất chuẩn và khi cần mở rộng bạn có thể dùng thể dùng tính chất thừa kế của OOP. Nói chung là chúng ta không phải chỉnh sửa core của ZF.

2- Hầu như các version mới của ZF ko có nhiều thay đổi trong core nên bạn có thể dễ dàng update.

3- ZF được xây dưng và phát triển trên ngôn ngữ PHP. Zend là công ty phát triển và tài trợ chính cho ngôn ngữ này nên tất cả các ưu điểm và nhược điểm của ngôn ngữ này Zend là người hiểu rõ nhất.

4- ZF tích hợp được gần như tất cả các thư viện PHP và các CMS khác để sử dụng. VD: Smarty - Pear - FCKEditer - Drupal ...

5- Các viết của ZF rất thân thiện và đơn giản. Tích hợp những mới nhất của lập trình web như: JSON - Search - Syndication - Web Services...

6- Chúng ta sẽ gần như ko phải viết gì nhiều nếu chúng ta xây dựng xong 1 phần quản trị Admin. Sau khi xây dựng xong phần Admin chúng ta chỉ cần biết search - select - copy - paste - modify 1 chút những lớp PHP bạn cần. Các bạn có thể tìm được gần như tất cả các lớp PHP cần thiết trong phpclasses.org

7- Nếu bạn trong 1 công ty lớn có chia các bộ phận chuyên môn riêng biệt như PM - BA - QA - Developer - Tester... thì ZF là chọn lựa hàng đầu của các công ty này trong mảng OpenSource

8- ZF được sử dụng trong các dự án lớn và có kế hoạch phát triển dài lâu

9- ZF thích hợp làm cho khách hàng kỹ tính và khó tính. VD: gia công ứng dụng cho thị trường Nhật

Read more...
 

Thống kê về tình hình sử dụng trình duyệt

E-mail Print PDF

Browser Statistics Month by Month

2009 IE7 IE6 IE8 Firefox Chrome Safari Opera
July 15.9% 14.4% 9.1% 47.9% 6.5% 3.3% 2.1%
June 18.7% 14.9% 7.1% 47.3% 6.0% 3.1% 2.1%
May 21.3% 14.5% 5.2% 47.7% 5.5% 3.0% 2.2%
April 23.2% 15.4% 3.5% 47.1% 4.9% 3.0% 2.2%
March 24.9% 17.0% 1.4% 46.5% 4.2% 3.1% 2.3%
February 25.4% 17.4% 0.8% 46.4% 4.0% 3.0% 2.2%
January 25.7% 18.5% 0.6% 45.5% 3.9% 3.0% 2.3%

 

 

2008 IE7 IE6 IE5 Firefox Chrome Safari Opera
December 26.1% 19.6%   44.4% 3.6% 2.7% 2.4%
November 26.6% 20.0%   44.2% 3.1% 2.7% 2.3%
October 26.9% 20.2%   44.0% 3.0% 2.8% 2.2%
September 26.3% 22.3%   42.6% 3.1% 2.7% 2.0%
August 26.0% 24.5%   43.7%   2.6% 2.1%
July 26.4% 25.3%   42.6%   2.5% 1.9%
June 27.0% 26.5% 0.5% 41.0%   2.6% 1.7%
May 26.5% 27.3% 0.7% 39.8%   2.4% 1.5%
April 24.9% 28.9% 1.0% 39.1%   2.2% 1.4%
March 23.3% 29.5% 1.1% 37.0%   2.1% 1.4%
February 22.7% 30.7% 1.3% 36.5%   2.0% 1.4%
January 21.2% 32.0% 1.5% 36.4%   1.9% 1.4%

 

 

2007 IE7 IE6 IE5 Firefox Mozilla Safari Opera
November 20.8% 33.6% 1.6% 36.3% 1.2% 1.8% 1.6%
September 20.8% 34.9% 1.5% 35.4% 1.2% 1.6% 1.5%
July 20.1% 36.9% 1.5% 34.5% 1.4% 1.5% 1.9%
May 19.2% 38.1% 1.6% 33.7% 1.3% 1.5% 1.7%
March 18.0% 38.7% 2.0% 31.8% 1.3% 1.6% 1.6%
January 13.3% 42.3% 3.0% 31.0% 1.5% 1.7% 1.5%

 

 

2006 IE7 IE6 IE5 Firefox Mozilla N7/8 Opera
November 7.1% 49.9% 3.6% 29.9% 2.5% 0.2% 1.5%
September 2.5% 55.6% 4.0% 27.3% 2.3% 0.4% 1.6%
July 1.9% 56.3% 4.2% 25.5% 2.3% 0.4% 1.4%
May 1.1% 57.4% 4.5% 25.7% 2.3% 0.3% 1.5%
March 0.6% 58.8% 5.3% 24.5% 2.4% 0.5% 1.5%
January 0.2% 60.3% 5.5% 25.0% 3.1% 0.5% 1.6%

 

 

2005 IE6 IE5 Firefox Mozilla N7 O8 O7
November 62.7% 6.2% 23.6% 2.8% 0.4% 1.3% 0.2%
September 69.8% 5.7% 18.0% 2.5% 0.4% 1.0% 0.2%
July 67.9% 5.9% 19.8% 2.6% 0.5% 0.8% 0.4%
May 64.8% 6.8% 21.0% 3.1% 0.7% 0.7% 0.6%
March 63.6% 8.9% 18.9% 3.3% 1.0% 0.3% 1.6%
January 64.8% 9.7% 16.6% 3.4% 1.1%   1.9%

 

 

2004 IE6 IE5 Mozilla N3 N7 N4 O7
November 66.0% 10.2% 16.5% 0.2% 1.2% 0.3% 1.6%
September 67.8% 11.2% 13.7% 0.3% 1.4% 0.3% 1.7%
July 67.2% 13.2% 12.6% 0.4% 1.4% 0.4% 1.6%
May 68.1% 13.8% 9.5% 0.6% 1.4% 0.4% 1.6%
March 68.2% 14.6% 7.9% 0.8% 1.4% 0.6% 1.4%
January 68.9% 15.8% 5.5% 0.4% 1.5% 0.5% 1.5%

 

 

2003 IE6 IE5 Mozilla N3 N7 N4 O7
November 71.2% 13.7% 7.2% 0.5% 1.6% 0.5% 1.9%
September 69.7% 16.9% 6.2% 0.6% 1.5% 0.6% 1.8%
July 66.9% 20.3% 5.7% 0.6% 1.5% 0.6% 1.7%
May 65.0% 22.7% 4.6% 1.0% 1.4% 0.9% 1.4%
March 63.4% 24.6% 4.2% 0.9% 1.4% 1.1% 1.2%
January 55.3% 29.3% 4.0% 1.2% 1.1% 1.7%  

 

 

2002 IE6 IE5 AOL N3 N5 N4 IE4
November 53.5% 29.9% 5.2% 1.1% 4.9% 2.0%  
September 49.1% 34.4% 4.5% 1.3% 4.5% 2.2%  
July 44.4% 40.1% 3.5% 1.2% 3.5% 2.6% 0.5%
May 40.7% 46.0% 2.8% 1.2% 2.7% 3.4% 0.7%
March 36.7% 49.4% 3.0% 1.2% 2.4% 4.1% 0.7%
January 30.1% 55.7% 2.8% 1.3% 2.2% 4.4% 1.0%


IE Internet Explorer
Firefox Firefox (identified as Mozilla before 2005)
Chrome Google Chrome
Mozilla The Mozilla Suite (Gecko, Netscape)
Safari Safari (and Konqueror. Both identified as Mozilla before 2007)
Opera / O Opera
N Netscape (identified as Mozilla after 2006)
AOL America Online (based on both Internet Explorer and Mozilla)

Theo http://www.w3schools.com/browsers/browsers_stats.asp

Last Updated ( Tuesday, 04 August 2009 15:28 )
 
More Articles...
Page 6 of 32
PHP Code Vn on Facebook

POLLS

Bạn thích sử dụng ngôn ngữ lập trình nào nhất?
 

Who's Online

We have 14 guests online