SlideShare a Scribd company logo
1 of 12
Class và Object (Lớp và Đối
tượng)
• Trước khi mình giới thiệu qua một số hàm thường dùng trong
WordPress, mình muốn nói trước về khái niệm Class (lớp) và
Object (đối tượng) trong PHP vì rất nhiều hàm trong WordPress
trả kết quả về là dạng đối tượng nên bạn nên đọc bài này để
hiểu cách hoạt động của Lớp và Đối tượng. Bây giờ bạn cần
biết trước rằng đối tượng là kiểu dữ liệu được tạo ra bởi một
lớp.
Định nghĩa Lớp và Đối tượng
• Lớp nghĩa là một khung kịch bản của một đối tượng, hoặc bạn
có thể hiểu đối tượng được tạo ra từ một lớp. Trong lớp nó sẽ
có các biến mà biến này ta gọi là các thuộc tính (properties), và
lớp nó có thể chứa các hàm mà các hàm này chúng ta gọi nó là
phương thức (method).
• Mình có ví dụ sau, chiếc xe là lớp, trong chiếc xe đó nó có các
thuộc tính như màu đỏ, 1 cầu 2 cầu, và các hành động như
chạy, lùi, thắng ta xem như một phương thức.
• Bây giờ chúng ta cùng viết một lớp tên là meeting như sau.
• 01
• 02
• 03
• 04
• 05
• 06
• 07
• 08
• 09
• 10
• 11
• 12
• 13
• 14
• class meeting {
•
• public $name = 'Thach';
•
• function hello()
• {
• return $this->name . ' saying hello';
• }
•
• function goodbye()
• Trong đó, mình tạo ra một thuộc tính $name trong lớp meeting, biến này
mình có đặt từ khoá là public mà cái này tí nữa mình sẽ giải thích sau.
• Kế đó mình tạo thêm một phương thức tên hello() trong lớp và nó sẽ trả
về là giá trị của thuộc tính $namekèm theo một đoạn chữ. Lưu ý rằng khi
mình viết code trong một lớp mà nếu mình muốn sử dụng một thuộc tính
nào đó có trong lớp thì sẽ sử dụng từ khoá $this->tên_thuộc_tính.
• Bây giờ chúng ta đã có 2 phương thức và một thuộc tính trong lớp. Chúng
ta sẽ sử dụng nó bằng cách tạo ra một biến để hứng lớp này.
• 01
• $say = new meeting;
• Nghĩa là khi sử dụng lớp, chúng ta cần cho biến nào hứng dữ liệu của lớp
thì sẽ có từ khoá new đằng trước tên lớp cần sử dụng.
• Bây giờ bạn dump cái biến $say, bạn sẽ thấy nó có kiểu dữ liệu là Object.
Truyền tham số vào lớp
• Như ở ví dụ trên, chúng ta có thuộc tính $name có giá trị sẵn là 'Thach'. Vậy chúng ta cần tự thiết lập giá trị này khi tạo đối tượng thì làm sao? Trước hết, chúng ta phải tạo ra cho nó thêm một phương thức nào đó mà nó sẽ có nhiệm vụ truyền tham số đã
được khai báo khi tạo ra đối tượng.
• 01
• 02
• 03
• 04
• 05
• 06
• 07
• 08
• 09
• 10
• 11
• 12
• 13
• class meeting {
• public $name;
•
• public function set_name( $ten )
• {
• $this->name = $ten;
• }
•
• public function hello()
• {
• return $this->name . ' saying hello';
Phương thức khởi tạo ( __construct() )
• Phương thức khởi tạo này nghĩa là một phương thức mà nó sẽ được tự động thực thi khi chúng ta tạo ra một đối tượng mới, và các tham số trong phương thức này chúng ta có thể truyền nó vào ngay lúc tạo ra đối tượng.
• Bây giờ quay lại ví dụ của bài truyền tham số, chúng ta dùng phương thức set_name() để truyền cái $namevào. Nhưng nếu bạn không muốn làm bước này, muốn truyền một tham số gì đó toàn cục trong lớp thì nên sử dụng phương thức __construct.
• 01
• 02
• 03
• 04
• 05
• 06
• 07
• 08
• 09
• 10
• 11
• 12
• 13
• 14
• 15
• 16
• 17
• 18
• <?php
• class meeting {
• public $name;
• public $skill;
• function __construct($ten, $kynang)
Kế thừa lớp
• Kế thừa lớp nghĩa là bạn tạo ra một lớp con mới sẽ kế thừa lại
một lớp nào đó với các thuộc tính và phương thức có sẵn, từ
đó bạn có thể tuỳ biến lại code bên trong một phương thức
hoặc thuộc tính nào đó.
• Ví dụ, mình có lớp Car được gọi là lớp mẹ, trong đây sẽ có sẵn
các thuộc tính và phương thức của một chiếc xe như màu sắc,
chạy, lùi,…Sau đó mình tạo ra một lớp khác con tên BMW và
nó sẽ kế thừa lại lớp Car này vì BMW nó cũng cần màu sắc,
cũng cần chạy, lùi mà.
Visibility trong lớp
• Ở các ví dụ trên, bạn có thể thấy mình sử dụng từ khoá public khi khai
báo thuộc tính và phương thức. Và từ khoá này được gọi là từ khoá
visibility. Hiện tại trong lớp, bạn sẽ sử dụng 3 từ khoá phổ biến nhất hiện
tại như:
• public – Nếu phương thức hoặc thuộc tính nào sử dụng từ khoá này thì
nghĩa là chúng ta có thể sử dụng nó ở bất cứ đâu, tức là có thể gọi ra bên
trong một lớp hoặc bên ngoài một lớp, hoặc sử dụng trong một lớp con
(lớp được kế thừa).
• private – Phương thức/Thuộc tính nào sử dụng từ khoá này thì nó chỉ
được truy cập bên trong một lớp của chính nó, không thể sử dụng cho lớp
khác hoặc không thể gọi ra bên ngoài. Ví dụ bạn có thể sử dụng $this-
>name bên trong lớp như không thể gọi ra với $object->name ở bên ngoài
lớp.
• protected – Phương thức/Thuộc tính nào sử dụng từ khoá này là nó sẽ có
thể được truy cập bên trong class hoặc các class kế thừa.
Lớp trừu tượng (Class Abstraction)
• Một lớp trừu tượng nghĩa là nó có một hoặc nhiều phương thức
là trừu tượng. Phương thức trừu tượng thì nghĩa là nó phải bắt
buộc được khai báo ở các lớp con. Bạn nên lưu ý rằng dù lớp
của bạn có bao nhiêu phương thức trừu tượng thì lớp đó vẫn là
lớp trừu tượng.
• Để khai báo lớp trừu tượng thì chúng ta chỉ việc thêm từ
khoá abstract đằng trước tên class và tên phương thức mà ta
muốn làm trừu tượng. Lưu ý là phương thức khai báo trừu
tượng sẽ không chứa bất cứ cái gì, ngoại trừ tham số.
• Code ở trên là chúng ta tạo ra một lớp tên tp_parent và nó là trừu tượng vì có từ khoá abstract ở trước. Bên trong nó ta
có thuộc tính $args là dạng protected để ta có thể sử dụng nó ở các lớp con nhưng không cho phép truy cập từ bên
ngoài.
• Sau đó chúng ta có phương thức trừu tượng tên set_args(), tức là phương thức này sẽ phải được bắt buộc khai báo ở
lớp con. Cuối cùng là ta có phương thức public là show_args() để có thể sử dụng nó bên ngoài cho mục đích lấy dữ
liệu hiển thị, và chức năng của phương thức này là hiển thị kết quả trả về của phương thức set_args() sau khi nó xử lý.
• Bây giờ chúng ta tạo ra một lớp con kế thừa lại lớp mẹ và thử không khai báo phương thức set_args() cho nó xem cái
gì xảy ra nhé.
• 01
• 02
• 03
• 04
• class tp_child extends tp_parent {}
•
• $child = new tp_child;
• echo print_r ( $child->show_args() )
Lời kết
• Trong bài này mục đích của mình là muốn cho bạn hiểu thật kỹ
về khái niệm Class và Object trong PHP, và khi code chúng ta
hoàn toàn sử dụng Class và Object người ta gọi đó là Lập trình
hướng đối tượng. Như vậy lập trình hướng đối tượng không
phải là khó, chỉ là bạn chưa biết cách nên nghe tên nó có vẻ
cao sang nhưng thực ra nó cũng chỉ là việc sử dụng class, kế
thừa rồi sử dụng các đối tượng tạo ra từ class mà thôi.
• Tạm thời ở đây bạn đã hiểu được dữ liệu đối tượng rồi. Ở bài
sau, mình sẽ nói qua cho bạn về một số hàm tiêu biểu trong
WordPress để bạn sử dụng, lúc đó bạn sẽ làm việc với đối
tượng nhiều hơn nữa.

More Related Content

What's hot

Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512lekytho
 
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)KhanhPham
 
Các quy định& chuẩn trong lập trình NukeViet
Các quy định& chuẩn trong lập trình NukeVietCác quy định& chuẩn trong lập trình NukeViet
Các quy định& chuẩn trong lập trình NukeVietVu Thao
 
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)KhanhPham
 
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)KhanhPham
 
Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và outputTráng Hà Viết
 
Lập trình hướng đối tượng trong PHP
 Lập trình hướng đối tượng trong PHP Lập trình hướng đối tượng trong PHP
Lập trình hướng đối tượng trong PHPNETKO Solution
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátTráng Hà Viết
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpTráng Hà Viết
 
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)KhanhPham
 
Oop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaOop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaTráng Hà Viết
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTMasterCode.vn
 

What's hot (20)

Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512
 
Php Csdlweb06
Php Csdlweb06Php Csdlweb06
Php Csdlweb06
 
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
 
Các quy định& chuẩn trong lập trình NukeViet
Các quy định& chuẩn trong lập trình NukeVietCác quy định& chuẩn trong lập trình NukeViet
Các quy định& chuẩn trong lập trình NukeViet
 
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
 
Lesson 2 lý thuyết
Lesson 2 lý thuyếtLesson 2 lý thuyết
Lesson 2 lý thuyết
 
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
 
Oop unit 02 java cơ bản
Oop unit 02 java cơ bảnOop unit 02 java cơ bản
Oop unit 02 java cơ bản
 
Cấu trúc cơ bản
Cấu trúc cơ bảnCấu trúc cơ bản
Cấu trúc cơ bản
 
Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và output
 
Lập trình hướng đối tượng trong PHP
 Lập trình hướng đối tượng trong PHP Lập trình hướng đối tượng trong PHP
Lập trình hướng đối tượng trong PHP
 
Oop unit 10 ngoại lệ
Oop unit 10 ngoại lệOop unit 10 ngoại lệ
Oop unit 10 ngoại lệ
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quát
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớp
 
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
 
Oop unit 08 đa hình
Oop unit 08 đa hìnhOop unit 08 đa hình
Oop unit 08 đa hình
 
Chuong 3
Chuong 3Chuong 3
Chuong 3
 
Kiem tra javascript
Kiem tra javascriptKiem tra javascript
Kiem tra javascript
 
Oop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaOop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừa
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
 

Similar to Class và object (lớp và đối tượng

Oop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpOop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpTráng Hà Viết
 
Chuong 03-lop-kieudulieutruutuong
Chuong 03-lop-kieudulieutruutuongChuong 03-lop-kieudulieutruutuong
Chuong 03-lop-kieudulieutruutuongbarrister90
 
Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thuaTuan Do
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượngHưởng Nguyễn
 
TT_MTKPM.pptx
TT_MTKPM.pptxTT_MTKPM.pptx
TT_MTKPM.pptxTriPhan74
 
Khái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & ObjectKhái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & ObjectCodeGym Đà Nẵng
 
Lesson 06 : OOP and Access modifier
Lesson 06 : OOP and Access modifierLesson 06 : OOP and Access modifier
Lesson 06 : OOP and Access modifierHallo Patidu
 
Bai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethuaNhuận Lê Văn
 
BHTCNPM-Slide-OOPppppppppppp-TH-22-23 .pptx
BHTCNPM-Slide-OOPppppppppppp-TH-22-23 .pptxBHTCNPM-Slide-OOPppppppppppp-TH-22-23 .pptx
BHTCNPM-Slide-OOPppppppppppp-TH-22-23 .pptx22520722
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06xcode_esvn
 
Tự học lập trình java b1
Tự học lập trình java  b1Tự học lập trình java  b1
Tự học lập trình java b1Tuyen Nguyen
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xZendVN
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcmHong Phuoc Nguyen
 
Ky thuat l.trinh_java
Ky thuat l.trinh_javaKy thuat l.trinh_java
Ky thuat l.trinh_javaLam Man
 
Core java 4
Core java 4Core java 4
Core java 4. .
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituongMinh Ngoc Tran
 

Similar to Class và object (lớp và đối tượng (20)

Oop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpOop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớp
 
Chuong 03-lop-kieudulieutruutuong
Chuong 03-lop-kieudulieutruutuongChuong 03-lop-kieudulieutruutuong
Chuong 03-lop-kieudulieutruutuong
 
Bai05 ket tapvakethua
Bai05 ket tapvakethuaBai05 ket tapvakethua
Bai05 ket tapvakethua
 
Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thua
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượng
 
Java
JavaJava
Java
 
TT_MTKPM.pptx
TT_MTKPM.pptxTT_MTKPM.pptx
TT_MTKPM.pptx
 
Khái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & ObjectKhái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & Object
 
Lesson 06 : OOP and Access modifier
Lesson 06 : OOP and Access modifierLesson 06 : OOP and Access modifier
Lesson 06 : OOP and Access modifier
 
Bai03 xay dunglop
Bai03 xay dunglopBai03 xay dunglop
Bai03 xay dunglop
 
Bai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethua
 
BHTCNPM-Slide-OOPppppppppppp-TH-22-23 .pptx
BHTCNPM-Slide-OOPppppppppppp-TH-22-23 .pptxBHTCNPM-Slide-OOPppppppppppp-TH-22-23 .pptx
BHTCNPM-Slide-OOPppppppppppp-TH-22-23 .pptx
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
 
Tự học lập trình java b1
Tự học lập trình java  b1Tự học lập trình java  b1
Tự học lập trình java b1
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.x
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcm
 
Oop unit 06 kế thừa
Oop unit 06 kế thừaOop unit 06 kế thừa
Oop unit 06 kế thừa
 
Ky thuat l.trinh_java
Ky thuat l.trinh_javaKy thuat l.trinh_java
Ky thuat l.trinh_java
 
Core java 4
Core java 4Core java 4
Core java 4
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 

More from Son Nguyen

Wsdl connector introduction
Wsdl connector introductionWsdl connector introduction
Wsdl connector introductionSon Nguyen
 
Android intergrate with mule
Android intergrate with muleAndroid intergrate with mule
Android intergrate with muleSon Nguyen
 
Mule flow overview
Mule flow overviewMule flow overview
Mule flow overviewSon Nguyen
 
Mule flow and filter
Mule flow and filterMule flow and filter
Mule flow and filterSon Nguyen
 
Handle exceptions in mule
Handle exceptions in muleHandle exceptions in mule
Handle exceptions in muleSon Nguyen
 
Spring security integrate with mule
Spring security integrate with muleSpring security integrate with mule
Spring security integrate with muleSon Nguyen
 
Message processor in mule
Message processor in muleMessage processor in mule
Message processor in muleSon Nguyen
 
Expression language in mule
Expression language in muleExpression language in mule
Expression language in muleSon Nguyen
 
Mule with data weave
Mule with data weaveMule with data weave
Mule with data weaveSon Nguyen
 
Using spring scheduler mule
Using spring scheduler muleUsing spring scheduler mule
Using spring scheduler muleSon Nguyen
 
Composite source in bound and out-bound
Composite source in bound and out-boundComposite source in bound and out-bound
Composite source in bound and out-boundSon Nguyen
 
Batch job processing
Batch job processingBatch job processing
Batch job processingSon Nguyen
 
Using message enricher
Using message enricherUsing message enricher
Using message enricherSon Nguyen
 
Finance connectors with mule
Finance connectors with muleFinance connectors with mule
Finance connectors with muleSon Nguyen
 
Google drive connection
Google drive connectionGoogle drive connection
Google drive connectionSon Nguyen
 
Using properties in mule
Using properties in muleUsing properties in mule
Using properties in muleSon Nguyen
 
Mule integrate with microsoft
Mule integrate with microsoftMule integrate with microsoft
Mule integrate with microsoftSon Nguyen
 
Anypoint connectors
Anypoint connectorsAnypoint connectors
Anypoint connectorsSon Nguyen
 
Mule esb basic introduction
Mule esb basic introductionMule esb basic introduction
Mule esb basic introductionSon Nguyen
 

More from Son Nguyen (20)

Wsdl connector introduction
Wsdl connector introductionWsdl connector introduction
Wsdl connector introduction
 
Android intergrate with mule
Android intergrate with muleAndroid intergrate with mule
Android intergrate with mule
 
Mule flow overview
Mule flow overviewMule flow overview
Mule flow overview
 
Mule flow and filter
Mule flow and filterMule flow and filter
Mule flow and filter
 
Handle exceptions in mule
Handle exceptions in muleHandle exceptions in mule
Handle exceptions in mule
 
Spring security integrate with mule
Spring security integrate with muleSpring security integrate with mule
Spring security integrate with mule
 
Message processor in mule
Message processor in muleMessage processor in mule
Message processor in mule
 
Expression language in mule
Expression language in muleExpression language in mule
Expression language in mule
 
Mule with data weave
Mule with data weaveMule with data weave
Mule with data weave
 
Using spring scheduler mule
Using spring scheduler muleUsing spring scheduler mule
Using spring scheduler mule
 
Composite source in bound and out-bound
Composite source in bound and out-boundComposite source in bound and out-bound
Composite source in bound and out-bound
 
Batch job processing
Batch job processingBatch job processing
Batch job processing
 
Using message enricher
Using message enricherUsing message enricher
Using message enricher
 
Finance connectors with mule
Finance connectors with muleFinance connectors with mule
Finance connectors with mule
 
Google drive connection
Google drive connectionGoogle drive connection
Google drive connection
 
Using properties in mule
Using properties in muleUsing properties in mule
Using properties in mule
 
Mule integrate with microsoft
Mule integrate with microsoftMule integrate with microsoft
Mule integrate with microsoft
 
Jms queue
Jms queueJms queue
Jms queue
 
Anypoint connectors
Anypoint connectorsAnypoint connectors
Anypoint connectors
 
Mule esb basic introduction
Mule esb basic introductionMule esb basic introduction
Mule esb basic introduction
 

Class và object (lớp và đối tượng

  • 1. Class và Object (Lớp và Đối tượng)
  • 2. • Trước khi mình giới thiệu qua một số hàm thường dùng trong WordPress, mình muốn nói trước về khái niệm Class (lớp) và Object (đối tượng) trong PHP vì rất nhiều hàm trong WordPress trả kết quả về là dạng đối tượng nên bạn nên đọc bài này để hiểu cách hoạt động của Lớp và Đối tượng. Bây giờ bạn cần biết trước rằng đối tượng là kiểu dữ liệu được tạo ra bởi một lớp.
  • 3. Định nghĩa Lớp và Đối tượng • Lớp nghĩa là một khung kịch bản của một đối tượng, hoặc bạn có thể hiểu đối tượng được tạo ra từ một lớp. Trong lớp nó sẽ có các biến mà biến này ta gọi là các thuộc tính (properties), và lớp nó có thể chứa các hàm mà các hàm này chúng ta gọi nó là phương thức (method). • Mình có ví dụ sau, chiếc xe là lớp, trong chiếc xe đó nó có các thuộc tính như màu đỏ, 1 cầu 2 cầu, và các hành động như chạy, lùi, thắng ta xem như một phương thức.
  • 4. • Bây giờ chúng ta cùng viết một lớp tên là meeting như sau. • 01 • 02 • 03 • 04 • 05 • 06 • 07 • 08 • 09 • 10 • 11 • 12 • 13 • 14 • class meeting { • • public $name = 'Thach'; • • function hello() • { • return $this->name . ' saying hello'; • } • • function goodbye()
  • 5. • Trong đó, mình tạo ra một thuộc tính $name trong lớp meeting, biến này mình có đặt từ khoá là public mà cái này tí nữa mình sẽ giải thích sau. • Kế đó mình tạo thêm một phương thức tên hello() trong lớp và nó sẽ trả về là giá trị của thuộc tính $namekèm theo một đoạn chữ. Lưu ý rằng khi mình viết code trong một lớp mà nếu mình muốn sử dụng một thuộc tính nào đó có trong lớp thì sẽ sử dụng từ khoá $this->tên_thuộc_tính. • Bây giờ chúng ta đã có 2 phương thức và một thuộc tính trong lớp. Chúng ta sẽ sử dụng nó bằng cách tạo ra một biến để hứng lớp này. • 01 • $say = new meeting; • Nghĩa là khi sử dụng lớp, chúng ta cần cho biến nào hứng dữ liệu của lớp thì sẽ có từ khoá new đằng trước tên lớp cần sử dụng. • Bây giờ bạn dump cái biến $say, bạn sẽ thấy nó có kiểu dữ liệu là Object.
  • 6. Truyền tham số vào lớp • Như ở ví dụ trên, chúng ta có thuộc tính $name có giá trị sẵn là 'Thach'. Vậy chúng ta cần tự thiết lập giá trị này khi tạo đối tượng thì làm sao? Trước hết, chúng ta phải tạo ra cho nó thêm một phương thức nào đó mà nó sẽ có nhiệm vụ truyền tham số đã được khai báo khi tạo ra đối tượng. • 01 • 02 • 03 • 04 • 05 • 06 • 07 • 08 • 09 • 10 • 11 • 12 • 13 • class meeting { • public $name; • • public function set_name( $ten ) • { • $this->name = $ten; • } • • public function hello() • { • return $this->name . ' saying hello';
  • 7. Phương thức khởi tạo ( __construct() ) • Phương thức khởi tạo này nghĩa là một phương thức mà nó sẽ được tự động thực thi khi chúng ta tạo ra một đối tượng mới, và các tham số trong phương thức này chúng ta có thể truyền nó vào ngay lúc tạo ra đối tượng. • Bây giờ quay lại ví dụ của bài truyền tham số, chúng ta dùng phương thức set_name() để truyền cái $namevào. Nhưng nếu bạn không muốn làm bước này, muốn truyền một tham số gì đó toàn cục trong lớp thì nên sử dụng phương thức __construct. • 01 • 02 • 03 • 04 • 05 • 06 • 07 • 08 • 09 • 10 • 11 • 12 • 13 • 14 • 15 • 16 • 17 • 18 • <?php • class meeting { • public $name; • public $skill; • function __construct($ten, $kynang)
  • 8. Kế thừa lớp • Kế thừa lớp nghĩa là bạn tạo ra một lớp con mới sẽ kế thừa lại một lớp nào đó với các thuộc tính và phương thức có sẵn, từ đó bạn có thể tuỳ biến lại code bên trong một phương thức hoặc thuộc tính nào đó. • Ví dụ, mình có lớp Car được gọi là lớp mẹ, trong đây sẽ có sẵn các thuộc tính và phương thức của một chiếc xe như màu sắc, chạy, lùi,…Sau đó mình tạo ra một lớp khác con tên BMW và nó sẽ kế thừa lại lớp Car này vì BMW nó cũng cần màu sắc, cũng cần chạy, lùi mà.
  • 9. Visibility trong lớp • Ở các ví dụ trên, bạn có thể thấy mình sử dụng từ khoá public khi khai báo thuộc tính và phương thức. Và từ khoá này được gọi là từ khoá visibility. Hiện tại trong lớp, bạn sẽ sử dụng 3 từ khoá phổ biến nhất hiện tại như: • public – Nếu phương thức hoặc thuộc tính nào sử dụng từ khoá này thì nghĩa là chúng ta có thể sử dụng nó ở bất cứ đâu, tức là có thể gọi ra bên trong một lớp hoặc bên ngoài một lớp, hoặc sử dụng trong một lớp con (lớp được kế thừa). • private – Phương thức/Thuộc tính nào sử dụng từ khoá này thì nó chỉ được truy cập bên trong một lớp của chính nó, không thể sử dụng cho lớp khác hoặc không thể gọi ra bên ngoài. Ví dụ bạn có thể sử dụng $this- >name bên trong lớp như không thể gọi ra với $object->name ở bên ngoài lớp. • protected – Phương thức/Thuộc tính nào sử dụng từ khoá này là nó sẽ có thể được truy cập bên trong class hoặc các class kế thừa.
  • 10. Lớp trừu tượng (Class Abstraction) • Một lớp trừu tượng nghĩa là nó có một hoặc nhiều phương thức là trừu tượng. Phương thức trừu tượng thì nghĩa là nó phải bắt buộc được khai báo ở các lớp con. Bạn nên lưu ý rằng dù lớp của bạn có bao nhiêu phương thức trừu tượng thì lớp đó vẫn là lớp trừu tượng. • Để khai báo lớp trừu tượng thì chúng ta chỉ việc thêm từ khoá abstract đằng trước tên class và tên phương thức mà ta muốn làm trừu tượng. Lưu ý là phương thức khai báo trừu tượng sẽ không chứa bất cứ cái gì, ngoại trừ tham số.
  • 11. • Code ở trên là chúng ta tạo ra một lớp tên tp_parent và nó là trừu tượng vì có từ khoá abstract ở trước. Bên trong nó ta có thuộc tính $args là dạng protected để ta có thể sử dụng nó ở các lớp con nhưng không cho phép truy cập từ bên ngoài. • Sau đó chúng ta có phương thức trừu tượng tên set_args(), tức là phương thức này sẽ phải được bắt buộc khai báo ở lớp con. Cuối cùng là ta có phương thức public là show_args() để có thể sử dụng nó bên ngoài cho mục đích lấy dữ liệu hiển thị, và chức năng của phương thức này là hiển thị kết quả trả về của phương thức set_args() sau khi nó xử lý. • Bây giờ chúng ta tạo ra một lớp con kế thừa lại lớp mẹ và thử không khai báo phương thức set_args() cho nó xem cái gì xảy ra nhé. • 01 • 02 • 03 • 04 • class tp_child extends tp_parent {} • • $child = new tp_child; • echo print_r ( $child->show_args() )
  • 12. Lời kết • Trong bài này mục đích của mình là muốn cho bạn hiểu thật kỹ về khái niệm Class và Object trong PHP, và khi code chúng ta hoàn toàn sử dụng Class và Object người ta gọi đó là Lập trình hướng đối tượng. Như vậy lập trình hướng đối tượng không phải là khó, chỉ là bạn chưa biết cách nên nghe tên nó có vẻ cao sang nhưng thực ra nó cũng chỉ là việc sử dụng class, kế thừa rồi sử dụng các đối tượng tạo ra từ class mà thôi. • Tạm thời ở đây bạn đã hiểu được dữ liệu đối tượng rồi. Ở bài sau, mình sẽ nói qua cho bạn về một số hàm tiêu biểu trong WordPress để bạn sử dụng, lúc đó bạn sẽ làm việc với đối tượng nhiều hơn nữa.