Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 47 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
47
Dung lượng
477,63 KB
Nội dung
PHP The Second DayPHP The Second Day ðào Quang Minhðào Quang Minh Trung tâm Tính toán Hiệu năng cao Trung tâm Tính toán Hiệu năng cao –– ðHBK Hà NộiðHBK Hà Nội minh0302@gmail.com minh0302@gmail.com http://hpcc.hut.edu.vn/~minhdqhttp://hpcc.hut.edu.vn/~minhdq Chương 2: Làm quen với PHP (tiếp)Chương 2: Làm quen với PHP (tiếp) Lập trình hướng ñối tượng trong PHP Các phương thức truyền dữ liệu trong PHP Các khái niệm nâng cao Lập trình hướng ñối tượng trong PHPLập trình hướng ñối tượng trong PHP Khai báo và thể hiện lớp trong PHPKhai báo và thể hiện lớp trong PHP Các lớp ñược khai báo thông qua từ khóa class, các thuộc tính khai báo dưới dạng các biến còn các phương thức ñược khai báo dưới dạng các hàm class tên_lớp { //danh_sách_các biến, hằng, lớp //danh_sách_các biến, hằng, lớp //danh_sách_các_hàm } (tiếp)(tiếp) Khởi tạo một ñối tượng thuộc một lớp với từ khóa new $tên_ñối_tượng = new tên_lớp(); ðể gọi hàm trong lớp ta sử dụng toán tử -> $ tên_ñối_tượng - >tên_hàm() ; $ tên_ñối_tượng - >tên_hàm() ; Hoặc dùng toán tử :: ñể gọi ñến một hàm hay một biến (biến phải ñược khai báo static) $tên_ñối_tượng::tên_hàm(); $tên_ñối_tượng::$tên_biến; Hàm tự ñộng gọi __autoloadHàm tự ñộng gọi __autoload Trong trường hợp chúng ta sử dụng một lớp chưa ñược ñịnh nghĩa thì hàm autoload sẽ tự ñộng ñược gọi. function __autoload($class_name) { { require_once $class_name.’.php’; } ðiều này là chưa từng có trong các phiên bản PHP trước ñây, chỉ từ PHP 5.x mới có tính năng này. Hàm tạo __constructHàm tạo __construct Cho phép bạn khai báo hàm tạo theo phương thức mới class A { function __construct(){ function __construct(){ //dòng lệnh } } Nếu không tìm thấy hàm tạo theo phương thức mới này, PHP sẽ tìm hàm tạo trong số các hàm của lớp với tên hàm trùng với tên lớp (cách cũ). Hàm hủy __destructHàm hủy __destruct Ngược lại với hàm tạo, hàm hủy ñược triệu gọi khi ñối tượng bị hủy ðược gọi trong hai tình huống – Trong lúc thực thi mã lệnh, khi mà tất cả các liên quan ñến ñối tượng bị không còn nữa. – Hoặc khi ñến cuối cùng của mã lệnh và PHP kết thúc các – Hoặc khi ñến cuối cùng của mã lệnh và PHP kết thúc các truy vấn. function __destruct() { } $tên_ñối_tượng = NULL; Truy cập phương thức và thuộc tính Truy cập phương thức và thuộc tính sử dụng con trỏ $thissử dụng con trỏ $this Public, protected, private với các thuộc tính – Public: có thể truy xuất từ bên ngoài hoặc từ bên trong phương thức thông qua con trỏ ñặc biệt $this class A { public $a = “public_member”; function printHello() { print “Xin chao”; } function test() { print $this->a; print $this->printHello(); } } (tiếp)(tiếp) – Protected: chỉ có thể truy xuất từ bên trong phương thức của lớp ñó hoặc từ một lớp kế thừa từ lớp ñó. class A { protected $a = “protected_member”; function printHello() { print $ this - >a ; print $ this - >a ; } } class B extends class A { protected $a = “new protected_member”; function subprintHello() { print $this->a; } } [...]... vào trang http://localhost/index .php qua URL: http://localhost/ptb2 .php? a=1&b =2& c =-3 (ti p) Khi ta Submit 1 form s d ng phương th c GET, d li u ñư c truy n qua URL: – Tên các bi n là tên ñ i tư ng trên form – Giá tr bi n là giá tr NSD nh p vào ñ i tư ng – ð ñ c giá tr các bi n trong PHP: S các ch s là tên bi n Ví d : Trong trang index .php a, b, c: $a = $_GET[“a”]; $b = $_GET[“b”]; $c = $_GET[“c”]; d... tri n 1 d án b ng cách s d ng l i nh ng mã l nh chính thông qua th a k class child extends class parent { } (ti p) PHP không h tr ña th a k như C++ PHP cung c p 1 gi i pháp khác cho vi c t o ra nhi u hơn 1 quan h c a l p b ng cách s d ng interfaces như là Java parent:: và self:: PHP h tr 2 l p dành riêng ñ d dàng hơn trong vi c vi t các ng d ng hư ng ñ i tư ng – Self:: thư ng ñư c dùng ñ truy c p ñ n... d li u trong PHP Các ñ i tư ng nh p d li u Cho phép ngư i s d ng nh p d li u trên trang web D li u này có th ñư c g i v server ñ x lý Ngư i s d ng nh p d li u thông qua các ñi u khi n (controls) Có nhi u lo i control: 1 Form 2 Oneline Textbox 3 Checkbox 4 Radio Button 5 Button 6 Combo box (drop-down menu) 7 Listbox 8 H p nh p văn b n nhi u dòng (TextArea) 9 … Phương th c truy n d li u PHP x lý d li... action=“index .php method = “post”> (ti p) Truy n d li u (bi n) qua URL: – Các bi n ñư c truy n thành t ng c p bi n=giá_tr phân cách b i d u & – Phân cách v i ñ a ch trang ban ñ u b i d u h i ch m (?) Ví d : Truy n 3 bi n a, b, c có giá tr l n lư t là 1, 2, -3 vào trang http://localhost/index .php qua URL: http://localhost/ptb2 .php? a=1&b =2& c =-3 ... A { static function printHello() { print “Xin chao”; } function show () { self::printHello();//ho c $this->printHello(); } } A::printHello();//A::show(); s l i khi dùng $this $obj = new A(); $obj->show();//ho c $obj->printHello(); (ti p) Chú ý ñ tránh s không rõ ràng gi a toán t this và self hay -> và :: ngư i ta thư ng quy ư c như sau: – Khi g i ñ n thu c tính hay ñ i tư ng ki u static trong m t l... phép ña th a k ) interface T1 extends T2, T3, { } t các Final Final Method: cũng gi ng như Java, Final Method trong PHP ñư c dùng ñ ch c ch n là phương th c ñó không th ñư c implement l i trong các l p khác xu t phát t nó (ti p) Final Class: tương t như Final Method, m t l p ñã ñư c khai báo là Final thì m i l p extend t nó s không ñư c th c hi n Overloading Trong PHP chúng ta có th ñ nh nghĩa l i các... c tính c a l p thì dùng toán t this và -> H ng s trong l p Có th ñ nh nghĩa h ng trên m t l p Nó có giá tr không ñ i và khai báo không có $ Tên h ng không ñư c trùng v i tên bi n, l p, hàm hay k t qu c a 1 phép toán hay 1 hàm const myConst = “Const_Value”; ð l y giá tr c a 1 h ng ta ch có th dùng toán t :: ho c thông qua m t phương th c ða hình ða hình trong PHP s d ng các l p và th a k gi a chúng,... c dùng khi mu n g i hàm t o hay các phương th c c a l p cha Toán t instanceof Có giá tr tr v ki u logic (true hay false) function checkifClass ($shape) { if ($shape instanceof Rectangle) { print $shape->name; print “ is a Class A ”; } } checkifClass(new Square()); (ti p) Dùng ñ ki m tra xem m t ñ i tư ng có ph i thu c v m t l p nào ñó hay không? Toán t này cũng dùng ñ ki m tr xem m t ñ i tư ng... l p ñó ñư c th c thi mà không ph i ñ nh nghĩa phương th c ñó làm vi c như th nào N u m t l p ñư c khai báo là implements t l p interfaces mà không có các phương th c như l p interfaces ñã khai báo thì chương trình s báo l i interface A { //các_phương_th c (*) } class MyClass implements A { //các_phương_th c (**) (ti p) M t l p có th th c thi nhi u hơn m t interfaces nhưng ph i ñ m b o các phương th...(ti p) – Private: ch có th ñư c truy xu t t bên trong l p ñó, cũng s d ng con tr $this như protected class A { private $a = “private_member”; function printHello() { print $this->a; } } (ti p) Public, protected, private v i các phương th c – Cũng tương t như v i các thu c tính v i các ñ nh nghĩa và ràng bu c cho các ki u public, protected và private – Cách khai báo cũng tương . http://hpcc.hut.edu.vn/~minhdqhttp://hpcc.hut.edu.vn/~minhdq Chương 2: Làm quen với PHP (tiếp )Chương 2: Làm quen với PHP (tiếp) Lập trình hướng ñối tượng trong PHP Các phương thức truyền dữ liệu trong PHP Các khái niệm nâng. PHP The Second DayPHP The Second Day ðào Quang Minhðào Quang Minh Trung tâm Tính toán Hiệu năng cao Trung tâm Tính toán Hiệu năng cao –– ðHBK Hà NộiðHBK Hà Nội minh03 02@ gmail.com minh03 02@ gmail.com. niệm nâng cao Lập trình hướng ñối tượng trong PHPLập trình hướng ñối tượng trong PHP Khai báo và thể hiện lớp trong PHPKhai báo và thể hiện lớp trong PHP Các lớp ñược khai báo thông qua từ khóa