Echo 'Thời điểm này đã ngoài quý I!'; 14 }

Một phần của tài liệu Giáo trình Phát triển ứng dụng web: Phần 2 - Lê Đình Thanh, Nguyễn Việt Anh (Trang 44 - 47)

14. }

Cấu trúc lặp

Ngôn ngữ PHP hỗ trợ c{c lệnh lặp for, foreach, while, do-while. Lệnh for đƣợc dùng khi số lần lặp đƣợc x{c định trƣớc. Cú ph{p của lệnh for nhƣ sau:

for (biểu_thức_1; biểu_thức_2; biểu_thức_3) {

Tập_lệnh đƣợc thực thi khi biểu_thức_2 đúng

}

trong đó, biểu_thức_1 đƣợc thực hiện một lần vơ điều kiện trƣớc khi c{c lần lặp

(iteration) đƣợc diễn ra. Ở mỗi lần lặp, biểu_thức_2 đƣợc kiểm tra, nếu biểu_thức_2

đúng, khối lệnh của for và biểu_thức_3 lần lƣợt đƣợc thực hiện, ngƣợc lại nếu

biểu_thức_2 sai, lần lặp bị bỏ qua v| lệnh for đƣợc kết thúc.

Lệnh foreach dùng để duyệt qua to|n bộ c{c phần tử thuộc một bộ sƣu tập

(mảng, đối tƣợng, xem thêm c{c Mục 6.2.6 v| 6.2.7). Số lần lặp của lệnh foreach sẽ

bằng với số lƣợng phần tử của bộ sƣu tập. Cú ph{p của lệnh foreach có dạng nhƣ

WebAppDevLê Đình Thanh, Nguyễn Việt Anh

129 foreach ($tên_bộ_sưu_tập as $giá_trị) {

Tập_lệnh

}

Lệnh while đƣợc dùng khi số lần lặp không x{c định trƣớc. Cú ph{p của lệnh

while nhƣ sau:

while (biểu_thức_điều_kiện) {

Tập_lệnh đƣợc thực thi khi biểu_thức_điều_kiện cho gi{ trị đúng.

}

Lệnh while tiến h|nh kiểm tra điều kiện lặp trƣớc khi thực thi c{c lệnh. C{c lệnh đƣợc thực thi lặp đi lặp lại cho đến khi điều kiện lặp sai.

Lệnh do-while cũng đƣợc dùng khi số lần lặp khơng x{c định trƣớc. Cú pháp của lệnh do-while có dạng nhƣ sau:

do {

Tập_lệnh

} while (biểu_thức_điều_kiện);

Kh{c với lệnh while, lệnh do-while sẽ thực hiện tập lệnh trƣớc khi kiểm tra điều kiện lặp, nên ít nhất tập lệnh đƣợc thực hiện một lần.

Ngơn ngữ PHP cung cấp lệnh break để có thể tho{t khỏi vịng lặp khơng cần

đến xét đến biểu thức điều kiện. Cú ph{p lệnh break nhƣ sau:

break [số_vịng_lặp];

trong đó, tham số tuỳ chọn số_vịng_lặp x{c định số vịng lặp có thể tho{t ra trong trƣờng hợp khối lệnh sử dụng nhiều vòng lặp lồng nhau.

Để kết thúc lần lặp hiện tại, v| thực hiện lần lặp tiếp theo, PHP sử dụng c}u lệnh continue. Lệnh continue cũng cho phép sử dụng tham số để x{c định số vòng lặp thực hiện tiếp tục trong trƣờng hợp khối lệnh sử nhiều vòng lặp lồng nhau.

6.2.5. Xâu

Xâu là dãy ký tự đƣợc đặt giữa hai dấu nháy đơn (') hoặc hai dấu nháy kép ("). Sự khác biệt giữa sử dụng dấu nháy đơn và dấu nháy kép là các ký tự trong xâu

sử dụng dấu nháy đơn giữ nguyên nghĩa nguyên thủy (literal) của nó, trong khi xâu sử dụng dấu nháy kép cho phép một số tổ hợp ký tự có ý nghĩa đặc biệt có tác dụng mở rộng xâu. Cụ thể, mọi ký tự trong xâu sử dụng dấu nháy đơn đều có

nghĩa nguyên thủy ngoại trừ dấu nháy đơn và dấu chéo trái (\). Để xác định giá

trị nguyên thủy cho các ký tự này, sử dụng các dãy ký tự thoát (escape sequence) \' và \\, tƣơng ứng. Tất cả các dãy ký tự thoát khác nhƣ \n, \r, \$, ... đều khơng có ý nghĩa mở rộng, mà các ký tự trong chúng giữ nguyên nghĩa nguyên thủy.

WebAppDevLê Đình Thanh, Nguyễn Việt Anh

130

Ngƣợc lại, xâu ký tự sử dụng dấu nháy kép chấp nhận tất cả các dãy ký tự thốt.

Ngồi ra, xâu ký tự sử dụng dấu nháy kép cho phép mở rộng xâu bằng biến trong xâu. Ví dụ sau đ}y minh họa sự khác biệt giữa xâu sử dụng dấu nháy đơn và xâu sử dụng dấu nháy kép. Trong ví dụ này, câu lệnh echo thứ nhất in ra xâu với mọi ký tự đều giữ nguyên ý nghĩa nguyên thủy, trong khi đó câu lệnh echo thứ hai in

ra xâu đã đƣợc mở rộng với biến trong xâu $name và dãy ký tự thoát \n. 1. <?php

2. $name = "PHP";

3. echo 'Học $name \n rất bổ ích'; // Học $name \n rất bổ ích 4. echo "Học $name \n rất bổ ích"; // Học PHP 4. echo "Học $name \n rất bổ ích"; // Học PHP

5. // rất bổ ích

PHP hỗ trợ rất nhiều hàm và toán tử xử lý xâu tiện lợi giúp cho việc xử lý xâu dễ dàng và linh hoạt. Điều này là cần thiết và hợp lý vì PHP đƣợc thiết kế chuyên dụng cho phát triển mặt sau ứng dụng web. Mọi dữ liệu vào mà mặt sau nhận đƣợc đều là xâu. Mặt sau ứng dụng web phải kiểm tra xâu, chuẩn hóa xâu,

chuyển đổi xâu thành các kiểu dữ liệu khác, ... Một số hàm xử lý xâu thƣờng

xuyên đƣợc sử dụng nhƣ strlen(), trim(), strncmp(), substr(), explode(), implode(), substr_replace(). Ngƣời đọc có thể tìm thấy ngun mẫu của các hàm này và nhiều

hàm xử lý xâu khác tại trang http://php.net/ref.strings. Với việc nối xâu, PHP hỗ trợ toán tử chấm (.) rất tiện lợi với cú pháp $s1.$s2, trong đó $s1, $s2 là các giá trị

nguyên thủy hoặc biến bất kỳ. Ví dụ, nếu $name='PHP' thì 'Học '.$name tƣơng

đƣơng 'Học PHP'.

6.2.6.Mảng

Khác với Java và C, mảng trong PHP là ánh xạ. Mỗi phần tử của mảng đƣợc x{c định bởi một khoá (key) duy nhất, chỉ đọc. Giá trị kèm theo khóa có thể thay đổi. Truy cập các phần tử mảng đƣợc thực hiện thơng qua khóa. Khóa chỉ nhận

kiểu số nguyên hoặc xâu trong khi giá trị có thể nhận kiểu dữ liệu bất kỳ. Có thể khai báo mảng bằng cú pháp đơn giản $ten_mang = array(). Khi đó, một biến có

kiểu mảng đƣợc tạo nhƣng chƣa có phần tử nào bên trong mảng. Để khởi tạo các phần tử mảng cùng với khai báo mảng, sử dụng cú pháp $ten_mang =

array(giá_trị_một, khóa_hai => giá_trị_hai, <), trong đó những phần tử khơng đƣợc

xác định khóa sẽ sử dụng khóa là số nguyên tăng tự động, bắt đầu từ 0. Ví dụ,

khai báo $arr = array("a" => "Hồng Hóa", "bc" => "Trần Sang", "Nguyễn Minh");

tƣơng đƣơng khai báo $arr = array("a" => "Hồng Hóa", "bc" => "Trần Sang", 0 => "Nguyễn Minh");.

Để thêm phần tử mới vào mảng, sử dụng cú pháp $ten_mang*khóa_mới+ = giá_trị; hoặc $ten_mang*+ = giá_trị;, trong đó khóa_mới chƣa tồn tại trong mảng. Nếu

khóa_mới đƣợc để trống, phần tử mới thêm sẽ nhận khóa là số nguyên tăng tự

động. Ví dụ, với mảng $arr ở trên, câu lệnh thêm phần tử mới $arr[] = "Lê Vân";

WebAppDevLê Đình Thanh, Nguyễn Việt Anh

131

Để thay đổi giá trị một phần tử mảng, sử dụng cú pháp $ten_mang[khóa_cũ] =

giá_trị_mới;, trong đó khóa_cũ đã tồn tại trong mảng. Ví dụ, với mảng $arr ở trên,

câu lệnh $arr["a"] = "Hồng Văn Hóa"; sẽ thay đổi giá trị phần tử thứ nhất trong

mảng từ "Hồng Hóa" thành "Hồng Văn Hóa".

Để loại bỏ phần tử mảng, sử dụng hàm unset() với cú pháp

unset($ten_mang*khóa_cũ+);, trong đó khóa_cũ đã tồn tại trong mảng. Ví dụ, với

mảng $arr ở trên, câu lệnh unset($arr["bc"]); sẽ loại bỏ phần tử thứ hai, có giá trị "Trần Minh", trong mảng. Lƣu ý, hàm unset($var) tổng quát có tác dụng xóa biến

$var khỏi chƣơng trình.

Liên quan đến mảng, PHP cung cấp nhiều hàm xử lý thuận tiện. Để biết số

phần tử của mảng, sử dụng hàm count($arr). Để sắp xếp các phần tử trong mảng theo thứ tự giá trị tăng dần, sử dụng hàm sort($arr). Để tính giao của các mảng, sử dụng hàm array_intersect ($arr1 , $arr2 , ...), ... Để biết thêm về các hàm xử lý mảng trong PHP, tham khảo trang http://php.net/ref.array.

Một trong c{c thao t{c cơ bản trên mảng l| duyệt qua c{c phần tử của mảng để thực hiện một cơng việc gì đó. PHP cung cấp cấu trúc lặp foreach cho duyệt mảng

hết sức thuận tiện. Khi duyệt mảng, có thể chỉ lấy ra giá trị của các phần tử trong mảng hoặc lấy ra cả khóa và giá trị của các phần tử trong mảng. Ví dụ sau đ}y

thực hiện duyệt mảng $a hai lần, lần thứ nhất chỉ lấy giá trị, lần thứ hai lấy cả

khóa và giá trị của các phần tử trong $a. 1. <?php

2. $a= array("mot"=>1, "hai"=>2, "ba"=>3);

Một phần của tài liệu Giáo trình Phát triển ứng dụng web: Phần 2 - Lê Đình Thanh, Nguyễn Việt Anh (Trang 44 - 47)

Tải bản đầy đủ (PDF)

(126 trang)