8 Chương 1: Giới thiệu ngôn ngữ lập trình PHPGiói thiệu ngôn ngữ lộp trình PHP N hững k ỹ năng và k h á i niệm chính M Tìm hiểu ¡Ịch sứ của PHP M Học những khả năng dộc đác của PHPcho sự
Trang 1Th.S: NGUYỄN MINH - LƯƠNG PHÚC
và nhóm tin học thực dụng
Sổ T A Y TIN HỌC LẬ P TRÌNH
Kỹ thuật và thủ thuật lập trình hướng đổì tượng
PHP
Khái niệm, kỹ thuật và viết mã
♦ Trọn bộ 2 tập bạn sẽ cố cơ hội cọ x á t để nâng cao kỹ năng lập trìn h thông qua việc tliực h àn h sử dụng các tin h năng cao cấp, chẳng h ạ n n h ư các vấn till cơ sở
d ữ liệu, My SQL, SQLite và PDO của PH P
♦ Với phươntỊ pháp hướng d ẫ n bằng ví dụ b ạ n sẽ khônc
nhữniỊ d ễ d à n g n ắm b ắ t các k h á i n iệ m c ă n b ả n , nâne
ca o hơn cũ n g n h ư cách s ử d ụ n g các CÔ11ÍỊ cụ lậ p trìn h
của PH P để viết các chương trìn h P H P căn bản
♦ Mỗi chưrtnq còn có n h ièu bài tậ p th ự c h à n h m à bạn
nên làm theo để nắm vững nội dung được trinli bày,
bao gồm sự cài đ ặ t p h ần m ềm, cú pháp Iigôn ngữ, các cấu trúc d ủ liệu
♦ Mà điểm đặc b iệt của bộ sách cliỉnli là ở phương pháj hướng d ẫn rấ t đơn giản và cực kỳ dễ tiế p th u
Jew Edition
NHÀ XUẤT BẢN HỒNG ĐỨC
www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
Trang 2www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
Trang 3I y ờ l NÓI ĐẦU
Bộ sách "Kỹ th u ậ t và th ủ tliu ậ t lậ p trìn li hướníị đối
tư ợ ng P H P " được b iê n soạn nhằm, m ục đ ích d à n h cho
nhữ ng người m ới b ắ t đ ầ u bước ch ân vào th ế giới của ngôn
ngữ lập tr ìn h PHP Không giống n h ư nliững sách ldiác,
sác h này k h ô n g đòi hỏi b ạn p hải học qu a trước các vấn đề
căn b ả n về lậ p trìn h Web hay cơ sở d ữ liệu Mà đ iểm đặc
b iệ t c ủ a bộ sá c h c h ú ih là ở phương p h á p hướng d ẫn r ấ t
đơn giản và cực kỳ dễ tiế p th u
T hực vậy, với phương p h á p liướng d ẫn bằng ví d ụ bạn
sẽ ldiông n h ữ n g dễ dàng nắm b ắ t các k h á i n iệm căn bản,
m à thô ng q u a đó sẽ d ần trở nên quen th u ộ c với'các lcliái
n iệ m n ân g cao hơn cũng n h ư cách sử d ụ n g các CÔĨ1£Ị cụ lập
trm li củ a P H P để v iế t các chương tr ìn h P H P căn bản
Hơn nữa, với trọ n bộ 2 tậ p bạn sẽ có cơ hộ i cọ x á t để nâng
cao kỹ năng lập trìn h thông qua việc th ự c h à n h sử dụng
các tín h năng cao cấp, chẳng h ạ n n h ư các vấn tin cơ sở dữ
liệu , MySQL, SQ Litc và PDO củ a PH P, các công ngliệ
XML, các cookie, session và h ead er, và các p h ầ n mở rộng
của b ê n th ứ ba.
Sách có bố cục rõ ràníỊ tiieo từng chương và dè m ục, các bước liướníị dần cụ tliể và dỗ hiểu Mỗi chương còn có
n h iề u b à i tậ p tliực liànli m à bạn nên làm tlieo đ ể nắm
viĩiitỊ nội dm iíị được trin h bày, bao gồm sự cài đ ặ t p h ần
m ềm , cú p h á p nqôn ngữ, các cấu trú c dữ liệu, các thường
Trình d iè u k h iể n , các h à m cài sẵn, và n h iề u tác vụ h ữ u
ícli ldiác.
Hy vọng sá c h sẽ là m ộ t tà i liệu liọc tậ p h ữ u ích cho bạn đọc trong q u á trin h trở th à n h m ộ t chuyên gia về PHP.
á c giá
www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
Trang 4www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
Trang 5ĩh ư ờ n g 1: Giđi thiệu ngôn ngữ lập trình PHP 7
PHẦN ỉ
Tìm hiểu các điểm
cơ bản về PHP
Chương 1: Giới th iệ u ngôn n g ữ lấ p trình PHP
Chươìig 2: s ử dụng cá c biên và toán tử Chương 3; Đ iều k h iể n dồng ch ả y của chttơng trình
Chương 4: Làm việc với các m ảng Chương 5: Sử dụng cá c h à m và Cíass Chươiig 6: Làm việc với các File và th ư
m ục
www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
Trang 68 Chương 1: Giới thiệu ngôn ngữ lập trình PHP
Giói thiệu ngôn ngữ lộp trình PHP
N hững k ỹ năng và k h á i niệm chính
M Tìm hiểu ¡Ịch sứ của PHP
M Học những khả năng dộc đác của PHPcho sự phát triển ứng rlụn'> v c b
tẫ Xem những thành phần của mội hộ thống PHP tiíũng tác nhỉ í thế nào
B Tìm hiểu văn phạm và cấu tníc cơ bản cửa một script PHP
t t Tạo và chạy một chxtơng trình PHP đơn giản
H Nhúng PHF trong một trang HTML
PHP Ba trìn h thông dụng n h ất th ế giới cho sự phát triển Web, bộ tiền m ẫu tự tạo n ên tên của một trong những ngôn ngữ lập
xử lý siêu văn bản (H ypertex P rep ro cesso r) PHP Và mặc
đù có th ể bạn cười thầm trước tính chuyên môn của từ ghép đệ quy, sô' liệu
thống kê cho thấy PHP không được xem nhẹ: ngôn ngữ này được sử dụng
ngày nay trên hơn 20 triệu Web site và hơn 1/3 các Web server của th ế
giới - không phải việc nhỏ đặc biệt khi bạn xem xét rằng con đường này
đã được phát triển hoàn toàn bởi một cộng đồng những người tìn h nguyện
tóàn cầu và có sẵn miễn phí trên Internet
www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
Trang 7Chướng 1: Giới thiệu ngôn ngữ lập trình PHP 9
Trong vài năm qua, PHP đã trở thành sự lựa chọn phổ biến cho việc
p hát triển các ứng dụng Web điều khiển bằng dữ liệu đáng chú ý do khả
năng mở rộng, tín h dễ sử dụng và sự hỗ trợ rộng rãi của nó cho các cơ sở dữ
liệu và định dạng dữ liệu khác nhau Chương đầu tiên này sẽ giới thiệu
nhẹ nhàng cho bạn về th ế giới của PHP bằng việc đưa bạn khảo sát một
vòng lịch sử các tín h năng PHP, và dẫn dắt bạn qua việc viết và thực thi
chương trìn h PHP đầu tiên Do đó hãy lật trang đầu tiên và b ắt dầu
Lịch sử PHP
Phiên bản hiện hành của PHP, PHP 5.3, đã tồn tại hơn 14 năm; dòng
dõi của nó có th ể được truy nguyên trở lại năm 1994, khi một n h à phát
triển có tên là Rasmus Lerdorf lần dầu tiên tạo ra một tập hợp script CGI
để giám sát số lần xem tran g (page view) cho sơ yếu lý lịch trực tuyến của
mình Phiên bản ban đầu này của PHP có tên là PH P/FI khá nguyên
thủy, vì vậy mặc dù nó đã hỗ trợ việc nhập liệu form và cơ sở dữ liệu
mSQL, nhưng nó thiếu nhiều tính năng an ninh và các add-on (chương
trình phụ trợ) được tìm thấy trong các phiên bản PHP hiện đại
Sau đó Lerdorf đã cải tiến PHP/FI 1.0 và tung nó ra dưới dạng PHP/FI
2.0, nhưng chỉ trong năm 1997, khi các nhà phát triển Andi Gutmans và
Zeev Suraski viết lại bộ phân tích cú pháp (parser PHP) và đã tung ra nó
iưới dạng PHP 3.0, thì sự phát triển PHP mới thực sự bắt đầu tăng tốc
Không chỉ cú pháp của PHP 3.0 mạnh hơn và n h ấ t quán hơn, nó còn đã
ỊĨỚi thiệu một cấu trúc mới có thể mở rộng khuyến khích những nhà phát
;riển độc lập tạo những cải tiến và extension riêng của m ình trong ngôn
ngữ Không cần phải nói, điều này đã thúc đẩy việc lựa chọn ngôn ngữ và
zhúng bao lâu PH P 3.0 đã bắt đầu xuất hiện trên hàng ngàn Web server
Lần lặp lại kế tiếp của cây mã, PHP 4.0 đã được tung ra vào năm 2000
Mó cung cấp một bộ máy tốt hơn, hiệu suất và độ tin cậy tố t hơn và sự hỗ
;rợ cài sẵn cho các session và các tính năng hướng đối tượng Một cuộc
íhảo sá t Nexen vào tháng 7 năm 2007 đã cho thấy phiên bản này của
?HP, PHP 4.X, vẫn là phiên bản nổi bật đang được sử dụng trên các Web
ỉite của Internet, chiếm gần 80% các server có tín h năng PHP được khảo
ỉát Tuy nhiên, vào tháng 7 năm 2007, đội p h át triển PHP đã thông báo
'ăng PHP 4.X không còn được hỗ trợ sau tháng 12 năm 2007 nữa, mở
ĩường cho việc lựa chọn rộng rãi hơn các phiên bản mới hơn
PHP 5.0 được tung ra vào năm 2004, là một bản tái th iế t k ế triệ t để
:ủa PHP 4.0, có một bộ máy được viết lại hoàn chỉnh, một mô hình đối
www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
Trang 810 Chương 1: Giới thiệu ngốn ngữ lập trinh PHP
tượng cải tiến nhiều và những cải tiến an ninh và hiệu suất khác nhau
Điều mà các n h à p h át triển đặc biệt quan tâm là mô hình đối tượng mới
mà bây giờ có hỗ trợ những tính năng mạnh mẽ của mô hình OOP chẳng
hạn như các class trừu tượng, destructor (phương thức hủy tạo), da giao
diện (interface) và các gợi ý loại class PHP 5.0 cũng đã giới thiệu những
công cụ mới và quan trọng khác nhau: một lớp truy cập cơ sở dữ liệu chung
(common database access); xử lý ngoại lệ kiểu Java và một bộ máy cơ sở
dữ liệu tích hợp
PHP 5.3, phiên bản gần đây nhâ't (và là phiên bản được sử dụng cua suốt sách này), được tung ra vào tháng giêng năm 2008 Nó cải tiến so với
các tính năng ECỚi được thể hiện đầu tiên trong PHP 5 0 vè cũng nố găng
bảo dưỡng một số khiếm khuyết mà những người sử dụng các phiên bản
ban đầu đã chú ý Một số cải tiến đáng chú ý n h ất trong phiên bản này là:
hồ trợ các namespace; một môi trường sạch hơi) và an toài) hơn cho việc
quản lý không gian biến; sự hỗ trợ cài săn cho SQLite 3; và một driver
riêng mới cho MySQL Cho đến bây giờ, tấ t cả thay đổi này đã thúc đẩy
làm cho PHP 5.3 trở thành phiên bản PHP tốt n h ất trong lịch sử 14 năm
của ngôn ngữ này, một sự kiện được minh họa rấ t nhiều bởi sự khảo sát
N etcraft tháng 4 năm 2008 cho thấy PHP đang được sử dụng trên hơn 30
triệu Web site
Các tính năng độc đáo
Nếu bạn quen thuộc với các ngôn ngữ phía server khác như ASP.NET hoặc JSP, có th ể bạn đang tự hỏi điều gì làm cho PHP trở nên đặc biệt
như vậy, hoặc khác biệt so với những lựa chọn cạnh tran h này Sau đây là
một sô' lý do:
H iệ u »uất Cốc script được viết bằng PHP thực thi nhanh hơr, các script được viết bằng những ngôn ngữ viết script khác, với vô số điểm mốc độc lập
khiến cho ngôn ngữ này vượt trội những lựa chọn cạnh tran h như JSP,
ASP.NET, và Perl Bộ máy PHP 5.0 đã được tái thiết k ế hoàn chỉnh với
một trìn h quản lý bộ nhớ (m em ory m anager) tối ưu để nâng cao hiệu suất
và nhanh hơn cũng dáng kể so với phiên bản trước Ngoài ra các bộ gia tốc
(accelerator) bên thứ ba có sẵn để cải tiến hiệu suất và thời gian đáp ứng
hơn nữa
T ín h k h ả c h u y ể n PHP có sẵn cho các chương trìn h UNIX, Microsoft Windows, Mac o s , và o s/2 , và các chương trình PHP khả chuyển giữa các
nền Kết quả một ứng dụng PHP được phát triển trên, ví dụ, Windows
thường chạy trên UNIX mà không gặp bất kỳ vấn đề đáng kể Khả năng
www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
Trang 9C hương 1: Giới thiệu ngôn ngữ lập trình PHP 11
dễ đảm nhận sự p h át triển nền chéo này là một khả năng đặc biệt khi
vận hành trong một môi trường doanh nghiệp đa nền hoặc khi cố giải
quyết nhiều phân khúc thị trường
T ính dễ sử d ụng Như Leonardo da Vinci đã nói "Đơn giản chính là
sự phức tạp tột cùng" và qua thước đo đó, PHP là một ngôn ngữ lập trình
cực kỳ tinh vi Cú pháp của nó rõ ràng và n h ấ t quán và nó đính kèm tài
liệu toàn diện cho 5000+ hàm đính kèm với các bản phân bố lõi Điều này
giảm đáng kể đường cong học tập cho những nhà lập trìn h mới và những
nhà lập trình có kinh nghiệm và nó là một trong những lý do PHP được
ưu tiên như là một công cụ nguyên mẫu nhanh cho các ứng dụng dựa trên
nền tảng Web
N guồn mở (Open S ource) PHP là một dự án nguồn mở - ngôn ngữ
được p hát triển bởi một đội những người tình nguyện trên toàn cầu làm
cho mã nguồn của nó có sẵn miễn phí trên Web và nó có th ể được sử dụng
mà không phải trả các phí bản quyền hoặc các khoản đầu tư vào phần
cứng hoặc phần mềm tốn kém Điều này giảm các chi phí phát triển phần
mềm mà không ảnh hưởng đến sự linh hoạt hoặc dộ tin cậy Bản chất
nguồn mở của mã có nghĩa xa hơn nữa là bất kỳ nhà p h át triển ở bất cứ
nơi nào cũng có th ể kiểm tra cây mã, phát hiện các lỗi và gợi ý các cách
sửa chữa có thể có; điều này tạo ra một sản phẩm m ạnh ổn định trong khi
các lỗi một khi được p h át hiện sẽ được giải quyết nhanh - đôi khi trong
vòng một vài giờ phát hiện
S ự h ỗ trỢ c ủ a c ộ n g đồng Một trong nh ữ n g điều thú vị về một ngôn
ngữ được hỗ trợ bởi cộng đồng như PHP là sự truy cập mà nó mang lại cho
sức sáng tạo và trí tưởng tượng của hàng trăm nhà p h át triển khắp th ế
giới Trong cộng đồng PHP, những thành quả của khả năng sáng tạo đó có
thể được tìm thấy trong PEAR, PHP Extension and Application Reposi
tion (http://pear.php.net/) và PECL, PH P E x ten sio n C om m unity Li
brary (http://pecl.php.net/), chứa hàng trăm widget và extension tài sản
mà các nhà phát triển có th ể sử dụng để dễ dàng thêm chức năng mới cho
PHP Sử dụng những widget này thường là một lựa chọn phân phối mã
riêng của bạn một cách hiệu quả hơn về thời gian và chi phí
Hỗ trự ứng d ụ n g b ên th ứ ba Một trong những ưu th ế của PHP là
trước đây nó đã hỗ trợ một dãy rộng các cơ sở dữ liệu khác nhau bao gồm
MySQL, PostgreSQL, Oracle, và Microsoft SQL Server PHP 5.3 hỗ trợ
hơn 15 bộ máy cơ sở dữ liệu khác nhau và nó có một API chung để truy cập
cơ sở dữ liệu Sự hỗ trợ XML làm cho dễ đọc (và viết) các tài liệu XML như
www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
Trang 1012 Chương 1: Giới thiệu ngôn ngữ lập trình PHP
thể nó là những cấu trúc dữ liệu PHP riêng, truy cập các tập hợp nút XML
sử dụng x p ath và biến đổi XML thành những định dạng khác bằng các
style sheet XSLT
Không chỉ dừng lại ở đó Cấu trúc mở rộng của PH P cho phép các nhà phát triển viết các add-on tùy ý cho ngôn ngữ và k ết quả là ngày nay các
nhà phát triển PHP có thể đọc và viết các định dạng ản h GIF, JEPG, và
PNG; gỏi và nhận e-mail sử dụng các giac thức SMTP, IMAP, và POP3;
giao diện với các dịch vụ Web sử dụng các giao thức SOAP và REST; hiệu
lực hóa dữ liệu nhập sử dụng các biểu thức thông thường Perl; và tạo và xử
lý các tài liệu PDF Thậm chí PHP có thể truy cập các thư viện c (library
C), các class (lớp) Java, và những dối tượng COM và tận dụng mã chương
trìn h được viết cho những ngôn ngữ này
Hỏi TÔI có cán biên dịch các chương Innh PHP truớc Khi thực thi chúng như trong Java hoặc C++ hay không?
Đáp: Không, bởi vì PHP là một ngôn ngữ thông dịch Một ưu điểm của một ngôn ngữ thông dịch là nó cho phép bạn thực hiện các thay đổi đối với
mã nguồn và ngay lập tức test những thay đổi đó mà trước tiên không cần phải biên dịch mã nguồn thành dạng nhị phản (binary) Bỏ qua bước biên dịch sẽ làm cho tiến trình phát triển nhanh hơn nhiều và PHP có khả náng quản lý bộ nhớ và lưu trữ trên bộ nhớ đệm (caching) để phủ định hiệu ứng của tải trọng thời gian chạy bổ sung đi kèm với việc sử dụng một trình thông dịch (interperter).
Những khái niệm cơ bản vể phát triển
Khi phát triển một ứng dụng PHP cho Web môt phương pháp điển hình là nhúng m ã PHP vào một hoặc nhiều tài liệu HTML chuẩn sử dụng
các "tag" (thẻ) hoặc dấu phân cách đặc biệt
Sau đây là một ví dụ:
<html>
<head></head>
<body>
<div>
<?php echo sqrt(49); ?>
</div>
www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn
- www.lib.haui.edu.vn