[BÀI 30] CLASS VÀ FUNCTION TRONG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Khai báo class: PHP <?php class ten_class{ } ?> 1 2 3 4 <?php class ten_class { } ?> trong đó ten_class là tên class bạn muốn ...
Khai báo class:
1 2 3 4 |
<?php class ten_class{ } ?> |
trong đó ten_class là tên class bạn muốn đặt.
Khai báo class và function:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<!DOCTYPE html> <html> <head> <title>Devpro.edu.vn</title> <meta charset="utf-8"> </head> <body> <?php class devpro { public function hocvien(){ echo "Đây là học viên của Devpro.edu.vn"; } } ?> </body> </html> |
Mỗi class sẽ chứa một hoặc nhiều function/hàm , mỗi hàm lại thực hiện một công việc khác nhau. Tạo nên sự rành mạch và phân chia rõ ràng khi viết code.
Cú pháp khai báo một hàm:
phạm_vi_hàm function tên_hàm(){
//nội dung của hàm
}
Trong đó:
- phạm_vi_hàm: phạm vi sử dụng của hàm.
- function : là từ khóa khai báo function
- tên_hàm: là tên hàm mà bạn muốn đặt
- Quy tắc đặt tên hàm: như quy tắc đặt tên biến.
Phạm vi sử dụng của biến, hàm:
- Để quy định rõ ràng các hàm hay các biến được sử dụng ở đâu và không được sử dụng ở đâu. Bạn cần thêm các từ khóa ngay trước tên biến hoặc trước khai báo hàm để chỉ rõ phạm vi sử dụng của các hàm hay các biến này.
- Static : khi sử dụng từ khóa static, phạm vi sử dụng hàm/biến là ở mọi nơi (có thể sử dụng ở bất kỳ đâu), các hàm/biến có phạm vi là static sẽ không cần khởi tạo class vẫn có thể sử dụng được. Khi đặt từ khóa static, hàm/biến sẽ trở thành các phương thức tĩnh, thuộc tính tĩnh.
- public: hơi khác với static, phạm vi sử dụng biến/hàm vẫn là ở mọi nơi nhưng khi sử dụng các biến/hàm có phạm vi là public, chúng ta bắt buộc phải khởi tạo class mới có thể sử dụng được.
- protected: biến có phạm vi là protected được sử dụng trong class cha (class cho các class khác kế thừa/sử dụng lại) và class con (class được kế thừa từ class cha/được sử dụng lại lớp cha), ngoài 2 class này không thể sử dụng các biến/hàm mang phạm vi protected.
- private: với kiểu phạm vi này, các biến/hàm chỉ có thể sử dụng trong chính class chứa các hàm/biến có phạm vi private.
- Nếu không khai báo phạm vi biến/hàm. Mặc định sẽ được hiểu phạm vi là public.
Ví dụ:
- Khai báo phạm vi sử dụng của hàm: public function danh_sach_hoc_vien_Devpro(){…}
- Khai báo phạm vi sử dụng của biến: private $ten_hoc_vien;
Ví dụ về hàm,biến có phạm vi là public:
Hàm có phạm vi là public:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<!DOCTYPE html> <html> <head> <title>'Devpro.edu.vn'</title> <meta charset="utf-8"> </head> <body> <?php class devpro { public function hocvien(){ return "Đây là học viên của Devpro.edu.vn"; } } //khởi tạo class devpro và gán vào biến $dev: $dev = new devpro; //sử dụng hàm hocvien() trong class devpro: echo $dev->hocvien(); ?> </body> </html> |
Ví dụ sử dụng biến có phạm vi là public ở ngoài class:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<!DOCTYPE html> <html> <head> <title>'Devpro.edu.vn'</title> <meta charset="utf-8"> </head> <body> <?php class devpro { public $khoa_hoc = "Khóa học lập trình PHP, Laravel ++"; public function hocvien(){ return "Đây là học viên của Devpro.edu.vn"; } } //khởi tạo class devpro và gán vào biến $dev: $dev = new devpro; //sử dụng biến $khoa_hoc trong class devpro: echo $dev->khoa_hoc; ?> </body> </html> |
Có một lưu ý nhỏ, biến của chúng ta bắt đầu bằng ký tự đô la ‘$’ nhưng khi gọi, chúng ta không ghi ký tự đô la vào. Đây là cú pháp bắt buộc. Nếu bạn ghi dấu đô la ngay trước tên biến (khi gọi để sử dụng) thì sẽ xảy ra lỗi.
Ví dụ sử dụng biến có phạm vi là public ở ngay trong class nhưng ở một vị trí khác:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<!DOCTYPE html> <html> <head> <title>'Devpro.edu.vn'</title> <meta charset="utf-8"> </head> <body> <?php class devpro { //đặt phạm vi của biến $khoahoc là public public $khoahoc = "Khóa học lập trình PHP, Laravel ++"; //sử dụng biến $khoahoc vào function tenkhoahoc() bằng từ khóa $this public function tenkhoahoc(){ return $this->khoahoc; } } //sử dụng hàm tenkhoahoc() trong class devpro $dev = new devpro; echo $dev->tenkhoahoc(); ?> </body> </html> |
Trong đó $this đại diện cho class bao ngoài, khoahoc là tên biến $khoahoc.
Ví dụ về hàm, biến có phạm vi là static trong class:
Hàm có phạm vi là static:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<!DOCTYPE html> <html> <head> <title>'Devpro.edu.vn'</title> <meta charset="utf-8"> </head> <body> <?php class devpro { //đặt phạm vi của hàm hocvien() là static static function hocvien(){ return "Đây là học viên của Devpro.edu.vn"; } } //sử dụng hàm hocvien() trong class devpro echo devpro::hocvien(); ?> </body> </html> |
Khi khai báo phạm vi là static thì tất nhiên chúng ta không cần khởi tạo class, mà có thể sử dụng luôn. Cú pháp sử dụng tên_class::hàm();
Tên class và tên hàm sẽ được ngăn cách bởi 2 dấu 2 chấm.
Biến có phạm vi là static, sử dụng biến có phạm vi static ngoài class:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<!DOCTYPE html> <html> <head> <title>'Devpro.edu.vn'</title> <meta charset="utf-8"> </head> <body> <?php class devpro { //đặt phạm vi của biến $khoahoc là static static $khoahoc = "Khóa học lập trình PHP, Laravel ++"; } //sử dụng biến $khoahoc trong class devpro echo devpro::$khoahoc; ?> </body> </html> |
Lưu ý: biến $khoahoc được đặt là static, do vậy mà khi sử dụng bạn phải ghi theo cú pháp tên_class::$tên_biến; khác với khi sử dụng biến có phạm vi là public khi gọi tên biến không có ký tự đô la ‘$’, khi gọi biến static bắt buộc phải có dấu đô la.
Biến có phạm vi là static, sử dụng biến có phạm vi static ở trong class:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<!DOCTYPE html> <html> <head> <title>'Devpro.edu.vn'</title> <meta charset="utf-8"> </head> <body> <?php class devpro { //đặt phạm vi của biến $khoahoc là static static $khoahoc = "Khóa học lập trình PHP, Laravel ++"; //gọi biến có phạm vi static vào hàm (cùng 1 class) bằng từ khóa self static function tenkhoahoc(){ return self::$khoahoc; } } //sử dụng hàm tenkhoahoc( trong class devpro echo devpro::tenkhoahoc(); ?> </body> </html> |
Khi sử dụng biến có phạm vi là static ở bất kỳ vị trí nào trong class, phải thêm từ khóa selft trước tên biến. Cú pháp self::$tên_biến;
Ví dụ về hàm, biến có phạm vi là protected trong class:
Sử dụng hàm, biến có phạm vi là protected ở class con và class cha:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<!DOCTYPE html> <html> <head> <title>'Devpro.edu.vn'</title> <meta charset="utf-8"> </head> <body> <?php class devpro { //khai báo biến $hocphi là protected protected $hocphi = "4,000,000 vnđ"; } class hocphiPHP extends devpro{ public function giahocphi(){ return $this->hocphi; }
Có thể bạn quan tâm
0
|