Để cài đặt Apache trong Windows bằng chương chương trình cài đặt tự động, cần download chương chương trình này về từ website của Apache. Thông thư thường những chương chương trình dạng này sẽ không hỗ trợ giao thức https.
• Quá trình cài đặt sẽ tự động sao chép tất cả các file cần thiết vào thư thư mục chỉ định.
• Có thể sử dụng chương chương trình quản lý ở mức dịch vụ để start, stop, restart, reload Apache hoặc khởi động bằng tay
50 trang |
Chia sẻ: haohao89 | Lượt xem: 3280 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Bài giảng Giới thiệu về Apache, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Apache & MySQL & PHP
Nguyễn Quang Trung
1. Giới thiệu về Apache
• Là một WEB Server miễn phí ñược phát triển theo
chuẩn mã nguồn mở.
• Apache chạy ñược trong cả hai môi trường Linux và
Windows.
• Có thể download phiên bản mới nhất của Apache tại
ñịa chỉ:
• Các phiên bản 1.x và 2.x (mới nhất) khác nhau về
kiến trúc. Chi tiết xin xem trong feature log.
1.1. Cài ñặt Apache 2.x
• Download phiên bản mới nhất
RPM (.rpm)
Linux
Source code (.tar.bz2)
Apache
Program install (.msi)
Windows
Source code (.zip)
1.2. Cài ñặt Apache 2.x (Windows)
• Để cài ñặt Apache trong Windows bằng chương trình
cài ñặt tự ñộng, cần download chương trình này về
từ website của Apache. Thông thường những
chương trình dạng này sẽ không hỗ trợ giao thức
https.
• Quá trình cài ñặt sẽ tự ñộng sao chép tất cả các file
cần thiết vào thư mục chỉ ñịnh.
• Có thể sử dụng chương trình quản lý ở mức dịch vụ
ñể start, stop, restart, reload Apache hoặc khởi ñộng
bằng tay.
1.3. Cấu hình Apache
• Toàn bộ cấu hình của Apache ñều ñược lưu dưới
dạng text.
• File cấu hình chính là httpd.conf nằm trong thư mục
{apache_dir}\conf. Trong file này có thể chứa các
khai báo include ñến những file cấu hình khác.
• Mỗi dòng trong file cấu hình ñều mang 1 ý nghĩa
– Là khoảng trắng
– Là chú thích (bắt ñầu bằng ký tự #)
– Là khai báo (gồm từ khóa và giá trị). Từ khóa và giá trị
1.3. Cấu hình Apache (tt)
• Toàn bộ tài liệu về Apache (bao gồm cả các khai báo
cấu hình) ñều ñược cài ñặt (mặc ñịnh) cùng với
Apache. Có thể truy cập vào tài liệu này thông qua
URL (có dấu / cuối cùng)
http:///manual/
• Thông thường URL trên sẽ bị vô hiệu hóa (mặc ñịnh)
cho ñến khi bỏ chú thích dòng “Include
conf/extra/httpd-manual.conf” trong file cấu hình
chính (httpd.conf) và restart lại Apache.
1.3. Cấu hình Apache (tt)
• Sau ñây là một số khai báo thường gặp khi cấu hình
Apache:
– Listen: Khai báo web server sẽ ñược dùng tại IP nào và
cổng nào. Có thể khai báo nhiều lần
– LoadModule: Khai báo các module ñược nạp vào khi
Apache khởi ñộng. Nên dùng ñể bỏ bớt các module không
cần thiết hoặc nạp module do người dùng tự viết.
– ServerName: Tên của server. Nếu Apache không tìm ñược
tên của máy tính qua DNS thì khai báo này bắt buộc phải có.
– DocumentRoot: Thư mục gốc của web server. Cần lưu ý
ñến quyền của hệ thống gán lên thư mục này ñối với
account dùng ñể chạy Apache.
1.3. Cấu hình Apache (tt)
• một số khai báo thường gặp khi cấu hình Apache:
– DirectoryIndex: Khai báo các file mặc ñịnh
– AddDefaultCharset: Khai báo bảng mã mặc ñịnh của luồng
siêu văn bản trả về cho client.
– Directory: Là khai báo khối (bên trong chứa các khai báo
con) dùng ñể ñịnh nghĩa quy tắc ứng xử của Apache ñối với
từng thư mục.
– VirtualHost: Là khai báo khối, dùng ñể ñịnh nghĩa các web
server ảo theo tên trên một máy tính duy nhất.
– Alias: Dùng ñể tạo các thư mục ảo.
2. Giới thiệu về MySQL
• Là một hệ quản trị cơ sở dữ liệu miễn phí ñược phát
triển theo chuẩn mã nguồn mở.
• MySQL chạy ñược trong cả hai môi trường Linux và
Windows.
• Có thể download phiên bản mới nhất của MySQL tại
ñịa chỉ:
• Các phiên bản 3.x, 4x và 5.x (mới nhất) khác nhau về
kiến trúc. Chi tiết xin xem trong feature log.
2.1. Cài ñặt MySQL 5.x
• Download phiên bản mới nhất
RPM (.rpm)
Linux
Source code (.tar.gz)
MySQL
Program install (.msi)
Windows
Source code (.zip)
2.2. Cài ñặt MySQL 5.x (Windows)
• Để cài ñặt MySQL trong Windows bằng chương trình
cài ñặt tự ñộng, cần download chương trình này về
từ website của MySQL.
• Quá trình cài ñặt sẽ tự ñộng sao chép tất cả các file
cần thiết vào thư mục chỉ ñịnh.
• Sau khi cài ñặt có thể sử dụng tiện ích cấu hình tự
ñộng ñể thiết lập các tham số ban ñầu cho MySQL.
• Tập tin cấu hình của MySQL có tên là my.ini ñược
ñặt tại thư mục {mysql_dir} là thư mục cài ñặt
MySQL.
2.3. Tập lệnh của mysql
• Các lệnh của mysql ñược lưu trong thư mục
{mysql_dir}\bin
• Nên ñưa thư mục trên vào ñường dẫn PATH ñể có
thể sử dụng lệnh trong mọi ngữ cảnh của dòng lệnh.
• Sau ñây là một số lệnh thường dùng
– mysqld-nt: Là chương trình server ñể lắng nghe các yêu cầu
của client.
– mysql: Là chương trình client dùng ñể kết nối và quản trị
bằng câu lệnh.
– mysqldump: Là chương trình cho phép kết xuất cấu trúc và
dữ liệu của các bảng trong mysql ra luồng dữ liệu dạng text.
2.4. Sử dụng lệnh mysql
• Để sử dụng lệnh mysql kết nối vào một mysql server
ta dùng cú pháp sau:
mysql [–u ] [-p] [-h ] [-P ]
• Trong ñó:
– u: Dùng ñể chỉ ñịnh người dùng khi kết nối. Mặc ñịnh trong
Windows là ODBC.
– p: Dùng ñể chỉ ñịnh là người dùng tương ứng có mật khẩu
kết nối hay không.
– h: Dùng ñể chỉ ñịnh ñịa chỉ (Tên hoặc IP) của mysql server
cần kết nối. Mặc ñịnh là localhost.
– P: Dùng ñể chỉ ñịnh cổng kết nối. Mặc ñịnh là 3306.
2.4. Sử dụng lệnh mysql (tt)
• Sau khi kết nối thành công, có thể sử dụng các lệnh
sau (kết thúc lệnh là dấu ;) ñể quản trị mysql server:
– source
– database ; show databases
– use ; show tables
– table; desc
– select, insert, update, delete
– grant, revoke, flush, set password
– …
• Tập ñầy ñủ các lệnh mysql có thể ñược download và
tra cứu tại trang chủ của MySQL.
2.5. Bảo mật trong MySQL
• Để kết nối ñược với mysql server, client cần có ít nhất 1 account
ñã ñược khai báo trong csdl người dùng & phân quyền của
mysql server. Đây là một csdl ẩn, không ñược phép hiển thị
trong mọi lệnh của mysql.
• Tất cả dữ liệu nằm trong csdl có tên là mysql chính là ánh xạ
của csdl người dùng & phân quyền.
• Lưu ý, ánh xạ trên là một chiều. Tức là chỉ có chiều từ csdl
mysql sang csdl người dùng & phân quyền. Tuy nhiên, không
phải mỗi khi csdl mysql thay ñổi thì csdl kia thay ñổi theo.
• Để có quyền thay ñổi (thực hiện ánh xạ), người dùng cần phải
có 2 quyền: grant và reload.
2.5. Bảo mật trong MySQL (tt)
• CSDL mysql chứa nhiều bảng bên trong, trong ñó chỉ có bảng
user chứa ñịnh nghĩa về người dùng mysql.
• Bảng user có khóa chính là user và host
– nếu host = ‘’ nghĩa là user ñược phép ñăng nhập từ mọi host
– nếu host = ‘%’ nghĩa là user ñược phép ñăng nhập từ mọi host trừ localhost
– giá trị của host là khác nhau với tên và IP (nghĩa là ‘localhost’ 127.0.0.1)
• Mật khẩu của người dùng ñược lưu dưới dạng kết quả của hàm
băm password. Để ñổi mật khẩu cần dùng lệnh set password.
• Bảng user cũng chứa các quyền toàn cục của người dùng.
• Các bảng khác: db, tables_priv, columns_priv chứa các quyền
của người dùng ñối với các csdl, bảng và cột trong bảng (Sử
dụng lệnh desc ñể biết thêm chi tiết).
2.6. Người dùng và phân quyền
• Sử dụng lệnh grant ñể tạo người dùng:
GRANT priv_type [(column_list)] ...
ON [TABLE] {tbl_name | * | *.* | db_name.*}
TO user@host [IDENTIFIED BY [PASSWORD] 'password'] ...
[WITH GRANT OPTION...]
– priv_type gồm các quyền:
• ALL [PRIVILEGES]
• ALTER
•
• SELECT,INSERT,UPDATE, DELETE
• …
• trong ñó cần lưu ý: ALL không chứa quyền grant.
2.6. Người dùng và phân quyền (tt)
• Sử dụng lệnh grant (tt):
– ‘password’ là mật khẩu thô, không cần dùng hàm password.
Nếu là dạng băm thì có thể dùng với từ khóa PASSWORD.
– Để có thể phân quyền cho một người dùng khác, người
dùng ñang thi hành lệnh phải có quyền grant (global) và
quyền insert,update trên bảng user trong csdl mysql.
– Thông thường, nếu người dùng chưa tồn tại thì grant tạo
luôn người dùng mới, nếu không nó sẽ cấp quyền cho
người dùng ñã có (nhưng không xóa các quyền khác, ñể
xóa cần dùng lệnh REVOKE có cú pháp như GRANT).
– Một số phiên bản install của MySQL bắt buộc phải tạo người
dùng bằng CREATE USER trước mới cho grant.
2.6. Người dùng và phân quyền (tt)
• Sử dụng lệnh grant (tt):
– Cũng trong một số phiên bản MySQL, sau khi thi hành xong
lệnh grant, chỉ có csdl mysql là ñược cập nhật. CSDL người
dùng & phân quyền thực sự của MySQL vẫn chưa ñược ánh
xạ từ csdl mysql sang.
– Để thực hiện ánh xạ trên, người dùng cần thực hiện lệnh
flush privileges và phải có quyền reload.
2.6. Người dùng và phân quyền (tt)
• Cập nhật trực tiếp vào csdl mysql:
– Như ñã nói, csdl người dùng & phân quyền của MySQL là
ánh xạ trực tiếp từ csdl mysql sang. Do ñó, nếu có ñủ
quyền, người dùng có thể insert,update,delete trực tiếp lên
các bảng trong csdl mysql. Sau ñó, thực hiện việc ánh xạ
bằng lệnh flush privileges.
– Hiệu quả của các thao tác trên tương ứng với lệnh grant.
• Lưu ý:
– Nếu quên mật khẩu của tài khoản root, có thể reset lại thông
qua hướng dẫn về phần này tại mục “Appendix A.4.1 How to
reset the root password” trong tài liệu do MySQL cung cấp
tại ñịa chỉ
2.7 Ví dụ
• Yêu cầu:
– Cài ñặt MySQL phiên bản 5.x vào hệ ñiều hành Windows
– Dùng chương trình Install Wizard ñể thiết lập MySQL chạy
như một service và ñặt mật khẩu của tài khoản root là ‘root’.
• Thực hành:
– Gõ lệnh mysql –u root –p tại dấu nhắc lệnh của cửa sổ
DOS, sau ñó nhập mật khẩu ‘root’ ñể ñăng nhập vào cửa sổ
lệnh của MySQL và thực hiện những lệnh sau
– show databases; // Xem các csdl hiện có
– create database mydb; // Tạo csdl mydb
– use mydb; // Đặt csdl hiện hành là mydb
2.7. Ví dụ (tt)
• Thực hành (tt):
– create table `mytable` (
`field1` char(10) collate utf8_unicode_ci not null,
`field2` int unsigned default 0,
`field3` datetime,
primary key (`field1`, `field2`),
index (`field1`),
unique (`field3`)
) engine=myisam default charset=utf8 collate=utf8_bin;
– show tables;
– desc mytable;
– insert into mytable set
field1 = ‘abc’, field2 = 1, field3 = now();
2.7 Ví dụ (tt)
• Thực hành (tt):
– use mysql;
– show tables;
– desc user;
– insert into user set user = ‘u1’, host = ‘localhost’,
password = password(‘test’);
– create user u2@localhost identified by ‘test’;
– create user u3@localhost identified by password
‘*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29’;
– grant all on *.* to u1@localhost with grant option;
– grant select,insert on mydb.* to u2@localhost;
2.7. Ví dụ (tt)
• Thực hành (tt):
– insert into mysql.tables_priv set
host = ‘localhost’, user = ‘u3’,
db = ‘mydb’, table_name = ‘mytable’,
table_priv = ‘Select,Insert,Update’;
– flush privileges;
– set password = password(‘abc’);
– Copy các lệnh cần thiết vào file c:\mysql.sql sau ñó chạy
lệnh sau tại dấu nhắc lệnh của MySQL:
source c:\mysql.sql;
– Sau ñó thoát khỏi dấu nhắc lệnh của MySQL và thi hành
lệnh sau:
mysqldump –u root –p --all-databases > c:\all.sql
3. Giới thiệu về PHP
• Là một ngôn ngữ lập trình server-side miễn phí ñược
phát triển theo chuẩn mã nguồn mở. PHP ra ñời từ
sự viết tắt của cụm từ Personal Home Page. Nhưng
hiện nay PHP ñược coi là sự chơi chữ của việc viết
tắt ñệ quy cụm từ PHP: Hypertext Preprocessor.
• PHP chạy ñược trong cả hai môi trường Linux và
Windows. Có thể download phiên bản mới nhất của
PHP tại ñịa chỉ:
• Các phiên bản 4x và 5.x (mới nhất) khác nhau về
kiến trúc. Chi tiết xin xem trong feature log.
3.1. Cài ñặt PHP 5.x
• Download phiên bản mới nhất
RPM (.rpm)
Linux
Source code (.tar.bz2)
PHP
Installer (.exe, .zip)
Windows
Source code (.tar.gz)
3.2. Cài ñặt PHP 5.x (Windows)
• Để cài ñặt PHP trong Windows bằng chương trình
cài ñặt tự ñộng, cần download chương trình này về
từ website của PHP.
• Lưu ý là bản cài ñặt PHP dạng tự ñộng sẽ không có
các thư viện mở rộng (ñặc biệt là hai thư viện
php_mysql và php_mbstring). Để có các thư viện này
cần sử dụng bản cài ñặt thủ công (.zip).
• File cấu hình của PHP có tên là php.ini nằm trong
thư mục C:\WINDOWS
3.3. Kết nối PHP - Apache
• Sau khi cài ñặt PHP xong, cần thực hiện các bước
ñúng như chỉ dẫn trong file install.txt nằm tại thư mục
{php_dir}
• Các chỉ dẫn trên vẫn thiếu một bước quan trọng là
thêm các khai báo sau vào file cấu hình của Apache:
AllowOverride None
Options None
Order allow,deny
Allow from all
3.4. Kết nối PHP – MySQL
• Xóa bỏ chỉ dẫn chú thích (;) trong file cấu hình của
php tại dòng “extension=php_mysql.dll” và tại dòng
“extension=php_mbstring.dll” sau ñó khởi ñộng lại
Apache. Chú ý giá trị của extension_dir
• Nếu mọi việc thành công, trình duyệt sẽ hiển thị
chính xác các thông tin khi duyệt ñịa chỉ
http:///info.php
• Với file info.php có nội dung như sau:
<?php
echo phpinfo();
?>
4. Ngôn ngữ lập trình PHP
• Là ngôn ngữ lập trình dạng server-side, vì vậy PHP
ngoài các khả năng của một ngôn ngữ lập trình thuần
túy còn có ñầy ñủ các chức năng cần thiết của một
CGI chuẩn như: Lấy dữ liệu từ form, sinh các trang
web ñộng, gửi nhận cookie, hỗ trợ session, thao tác
với biến của WEB Server.
• PHP cũng có hệ thống thư viện hàm ñồ sộ giúp cho
các lập trình viên có nhiều lựa chọn trong việc sửa
dụng PHP ñể kết nối với nhiều phần mềm khác nhau
như: Oracle, MySQL, ODBC, LDAP, Mail (SMTP,
POP3), COM, .Net…
4.1. Cú pháp cơ bản
• PHP mỗi khi thông dịch một file sẽ chỉ thi hành
những khối lệnh nằm giữa 2 cặp thẻ
• Mọi ký tự nằm ngoài các cặp thẻ trên ñều ñược giữ
nguyên và thêm vào trong luồng siêu văn bản trả về
cho môi trường bên ngoài theo ñúng thứ tự ban ñầu.
• Nói chung, cú pháp trong PHP ñược thừa kế từ cú
pháp của C, C++ và Perl. Tuy nhiên, cũng có một số
kết hợp và thay ñổi từ các cú pháp gốc tạo ra nét ñặc
thù riêng cho PHP.
4.1. Cú pháp cơ bản (tt)
• Để tạo ra các kết xuất trả về cho môi trường bên ngoài (trình
duyệt) ta có thể sử dụng các cách sau:
– Viết kết xuất bên ngoài cặp thẻ
– Dùng lệnh echo hoặc print
• Để tạo ra chú thích, có thể dùng cú pháp dạng C như sau:
– // Để chú thích dòng
– /* */ Để chú thích khối
• Lệnh của PHP kết thúc bởi dấu chấm phẩy (;) và có thể viết
nhiều lệnh trên một dòng.
• Lưu ý không giống C, C++ trình thông dịch của PHP chỉ phân
biệt hoa thường với tên biến, tên hằng. Còn tên hàm (có sẵn
hoặc do người dùng ñịnh nghĩa) và từ khóa thì không phân biệt.
4.2. Biến
• 4.2.1 Định nghĩa biến
– Biến trong PHP ñược bắt ñầu bởi ký tự $, sau ñó là tên biến
ñược ñịnh nghĩa theo văn phạm sau:
[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
– Tên biến có phân biệt hoa thường. Có thể gán giá trị vào
biến mà không cần khai báo. Nhưng chỉ có thể truy cập nội
dung biến ñã có giá trị.
– Để xác ñịnh biến tồn tại hay không có thể dùng hàm isset()
và ñể hủy biến có thể dùng hàm unset()
– Để xác ñịnh kiểu hiện tại của biến có thể sử dụng hàm
gettype(), var_dump() hoặc các hàm is_var_type().
4.2. Biến (tt)
• 4.2.2 Phạm vi truy cập biến:
– Biến cục bộ hàm: Chỉ ñược sử dụng trong thân các hàm do
người dùng ñịnh nghĩa
– Biến toàn cục: Được sử dụng bên ngoài thân các hàm do
người dùng ñịnh nghĩa. Để truy cập ñược các biến này trong
thân các hàm, cần phải dùng từ khóa global ñể khai báo
hoặc thông qua biến mảng siêu toàn cục $GLOBALS.
– Biến siêu toàn cục: Là các biến ñược ñịnh nghĩa trước của
PHP có thể ñược truy cập tại mọi nơi, mọi ngữ cảnh.
– Biến tĩnh: Được sử dụng như biến tĩnh trong C++. Biến tĩnh
có thể ñược ñịnh nghĩa trong hàm và lớp.
4.2. Biến (tt)
• 4.2.3 Truy cập giá trị biến:
– Để truy cập giá trị biến chỉ cần dùng cú pháp $var_name.
Biến kiểu mảng cần thêm cặp ký tự [ ] ñể truy cập vào giá trị
các phần tử trong mảng.
– Tuy nhiên trong nhiều trường hợp phải sử dụng thêm cặp
ngoặc nhọn { } hoặc ký tự & ñể có thể xác ñịnh chính xác tên
biến cần truy cập
$a = ‘hello’; $b = ‘every’;
$c = &$b; $d = ‘b’;
echo “$a $bone.”; echo “$a ${b}one.”;
echo “$a {$c}one.”; echo “$a $$d”;
echo “$a {$$d}one.”; echo “$a ${$d}one.”;
4.2. Biến (tt)
• 4.2.4 Biến bên ngoài PHP:
– Biến form: Được truy cập thông qua các biến mảng siêu
toàn cục ñược ñịnh nghĩa trước là $_POST, $_GET,
$_COOKIE, $_REQUEST, $_FILES. Nếu khai báo
register_global ñược bật trong php.ini thì tự ñộng các biến
có tên tương ứng cũng ñược tạo ra.
– Biến session: Được truy cập thông qua các biến mảng siêu
toàn cục ñược ñịnh nghĩa trước là $_SESSION.
– Biến server: Được truy cập thông qua các biến mảng siêu
toàn cục ñược ñịnh nghĩa trước là $_SERVER, $_ENV.
4.3. Kiểu dữ liệu
• PHP hỗ trợ nhiều kiểu dữ liệu
phổ thông như các ngôn ngữ
lập trình khác (ñược liệt kê bên
phải).
• Trên thực tế, PHP không ñịnh
kiểu tuyệt ñối cho các biến mà
tùy vào từng ngữ cảnh, biến sẽ
ñược quyết ñịnh là có kiểu nào
tương ứng.
• Để ép kiểu có thể dùng cú
pháp như của C hoặc dùng
hàm settype().
• Kiểu vô hướng
– boolean
– interger
– float
– string
• Kiểu có cấu trúc
– array
– object
• Kiểu ñặc biệt
– resource
– NULL
• …
4.3. Kiểu dữ liệu (tt)
• Kiểu boolean
– Tập xác ñịnh: { true, false }
– Toán tử liên quan:
= == != === !=== && || and or xor (bool)
• Kiểu interger
– Tập giá trị: { (-231) … (231 – 1) }
– Văn phạm:
• decimal: [1-9][0-9]* | 0
• hexa: 0[xX][0-9a-fA-F]+
• octal: 0[0-7]+
• integer: [+-]
4.3. Kiểu dữ liệu (tt)
• Kiểu interger
– Toán tử liên quan:
& | ^ ~ + - * / % ++ -- >
&= |= ^= += -= *= /= %= >= (int)
• Kiểu float
– Tập xác ñịnh: { (-1,8 x 10308) … (1,8 x 10308) }
– Văn phạm:
• lnum: [0-9]+
• dnum: ([0-9]*[.]{lnum}) | ({lnum}[.][0-9]*)
• float: (({lnum} | {dnum}) [eE][+-] {lnum})
4.3. Kiểu dữ liệu (tt)
• Kiểu float
– Toán tử liên quan: Giống kiểu interger
• Kiểu string
– Cách xác ñịnh
• Đặt trong cặp nháy ñơn ‘ ’: Các ký tự giữa hai dấu nháy ñơn
ñược xử lý như văn bản thuần túy, chỉ có duy nhất 1 ký tự
metacharacter có hiệu lực là ký tự \
• Đặt trong cặp nháy kép “ ”: Các ký tự giữa hai dấu nháy kép
ñược tiền xử lý trước khi ñược coi như một xâu thực sự. Ví dụ
“this is a new paragraph \n and this is character A: \x41”
• Đặt trong cặp cú pháp heredoc <<< tên string tên;
• Cả 3 cách ñều hỗ trợ xâu ñịnh nghĩa trong nhiều dòng.
4.3. Kiểu dữ liệu (tt)
• Kiểu string
– Toán tử liên quan: . .= [ ]
• Kiểu array
– Kiểu array là kiểu có cấu trúc rất mạnh của PHP, nó cho
phép lập trình viên có thể truy cập vào các phần tử trong
mảng thông qua cơ chế chỉ số rất linh hoạt.
– Toán tử liên quan: +
– Ví dụ
$arr = array("test" => array(6 => 5, 13 => 9, "a" => 42));
echo $arr["test"][6]; // 5
echo $arr["test"][13]; // 9
echo $arr["test"]["a"]; // 42
4.4. Hằng
• Được ñịnh nghĩa bởi cấu trúc define.
• Tên hằng phân biệt hoa thường.
• Phạm vi sử dụng giá trị của hằng là siêu toàn cục.
• Giá trị của hằng phải là kiểu vô hướng.
• Ví dụ
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
4.5. Cấu trúc ñiều khiển
• Rẽ nhánh với if … else
if ($a > $b) {
echo "a > b";
$a = $b;
} else {
echo "a <= b";
$b = $a;
}
if ($a > $b):
echo "a > b";
$a = $b;
else:
echo "a <= b";
$b = $a;
endif;
4.5. Cấu trúc ñiều khiển (tt)
• Rẽ nhánh với switch … case
switch ($a) {
case 0:
echo "a = 0";
break;
case 1:
echo "a = 1";
break;
}
switch ($a):
case 0:
echo "a = 0";
break;
case 1:
echo "a = 1";
break;
endswitch;
4.5. Cấu trúc ñiều khiển (tt)
• Lặp với while & do … while
while ($i++ < 5) {
switch ($i) {
case 2:
echo "At 2"; break 1; /* Exit only switch. */
case 5:
echo "At 5"; break 2; /* Exit switch and while. */
default:
break;
}
while (1) continue 2;
echo "This never gets.";
}
4.5. Cấu trúc ñiều khiển (tt)
• Lặp với for & foreach
for ($i=1, $j=0; $i<=10; $j+=$i, print $i, $i++);
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
$arr = array("one", "two", "three");
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value";
}
4.5. Cấu trúc ñiều khiển (tt)
• Các khai báo khác
– include: Xác ñịnh ñoạn mã ñược thi hành tiếp theo nằm
trong file nào (hoặc URL nào). Nếu có nhiều khai báo
include ñến một file (URL) duy nhất hoặc khai báo này ñược
ñặt trong 1 vòng lặp thì khai báo sẽ ñược sử dụng nhiều lần.
– include_once: Giống include nhưng chỉ cho phép include
mỗi file một lần.
– require: Giống include nhưng sẽ trả về lỗi nếu k0 thấy file
hoặc URL.
– require_once: Giống include_once và require kết hợp lại.
– try { ... } catch;
4.6. Hàm
• Khai báo hàm trong PHP gần giống như khai báo
trong C. Hàm trong PHP cũng cho phép ñệ quy, lồng
nhau. Tuy nhiên, cũng có một số ñiểm khác biệt:
–