Tải bản đầy đủ (.pdf) (20 trang)

Bài giảng Phát triển ứng dụng Web – Web Programming: Chương 10 - ThS. Lương Trần Hy Hiến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.4 MB, 20 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>PHP Advances</b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

2. Truyền nhận dữ liệu (POST/GET)


3. Cookies, Sessions



4. Xử lý ngày tháng



5. Xử lý tập tin & thư mục


6. Upload tập tin lên Server


7. Hình ảnh



8. E-mail, Secure E-mail



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

• Khai báo lớp


• Hàm tạo



• Phạm vi


• Kế thừa



</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

• Hàm tạo



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Khai báo lớp



class tên_lớp
{


các thuộc tính và phương thức
}


Tạo và hủy một đối tượng




$tên_biến = new tên_lớp();


Đối tượng sẽ tự động bị hủy khi khơng cịn tham chiếu
nào đến nó


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

– public: có thể sử dụng bên ngồi lớp


– private: chỉ sử dụng cục bộ bên trong lớp


– protected: sử dụng được bởi các lớp kế thừa


Một số quy tắc chung:



– Không thể khai báo hai method trùng tên


– Method phải được khai báo ngay bên trong khai
báo lớp


– Dùng biến giả $this để truy xuất các member và
method trong lớp


– Dùng toán tử -> để truy xuất đến member và


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Khai báo constructor và destructor



public function __construct(danh sách tham số)
{


khởi tạo giá trị các member
}



<i>constructor được tự động thực hiện khi đối tượng được tạo</i>


public function __destruct()
{


dọn dẹp
}


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8></div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

• Khai báo



const

TÊN_HẰNG

=

giá trị;



• Truy xuất



tên_lớp

::

TÊN_HẰNG

// ngồi lớp



</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

static

$thuộc_tính



• Truy xuất



tên_lớp::$thuộc_tính// ngồi lớp



seft::$thuộc_tính

// trong lớp



</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

• Khai báo



– … static function phương_thức(…)



• Truy xuất




– tên_lớp::phương_thức(…)

// ngồi lớp



</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

class

lớp_con

extends

lớp_cha


{



các thuộc tính và phương thức


}



<i>Tất cả các member và method được khai báo </i>



<i>public hay protected trong lớp cha được thừa kế </i>


<i>và có thể sử dụng trong lớp con</i>



</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

• Gọi một method lớp cha


parent::

phương_thức(…)



</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

abstract class lớp_trừu_tượng
{


// các thuộc tính


abstract public function
phương_thức_trừu_tượng(…);




// các phương thức khác
}



<i>Khơng thể tạo đối tượng trực tiếp từ lớp trừu tượng</i>


<i>Lớp con bắt buộc phải định nghĩa các phương thức trừu </i>
<i>tượng của lớp cha</i>


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

• Lớp khơng thể kế thừa



final class

khơng_thể_kế_thừa { … }



• Phương thức khơng thể nạp chồng



</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

interface giao_diện
{


public function phương_thức();


}


Khai báo lớp theo mẫu Interface



abstract class tên_lớp implements giao_diện
{



}


<i>Các lớp sử dụng Interface hay kế thừa từ một lớp sử dụng Interface</i>
<i>bắt buộc phải định nghĩa tất cả các phương thức trong Interface đó</i>



</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17></div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<b>18</b>


<b><?php</b>


<b>class AClass {</b>
<b>var</b> <b>$a;</b>


<b>function AClass() {</b>
<b>}</b>


<b>};</b>


<b>$ob1</b> <b>= new AClass();</b>


<b>$ob1->a =</b> <b>10;</b>


<b>$ob1->b =</b> <b>100;</b>


<b>$ob1->c =</b> <b>“Nguyen Ngoc Thuy Hang";</b>


<b>$luu</b> <b>=</b> <b>serialize($ob1);</b>


<b>echo</b> <b>"$luu</b> <b><br>";</b>


<b>$ob2</b> <b>=</b> <b>unserialize($luu);</b>


<b>var_dump($ob2);</b>


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19></div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

2



<b>Internet </b>
<b>or Intranet</b>


7


</div>

<!--links-->

×