Loại câu lệnh vòng lặp cuối cùng, vòng lặp
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }1, cũng là loại mạnh nhất, vì nó kết hợp khả năng thiết lập các biến khi bạn vào vòng lặp, kiểm tra các điều kiện trong khi lặp lại các vòng lặp và sửa đổi các biến sau mỗi lần lặp.
chỉ ra cách viết chương trình bảng cửu chương với vòng lặp
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }1
Xem cách mã đã được rút gọn thành một câu lệnh
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }1 duy nhất chứa một câu lệnh điều kiện duy nhất? . Mỗi câu lệnh
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }1 có ba tham số
Biểu thức khởi tạo
Một biểu thức điều kiện
Một biểu thức sửa đổi
Chúng được phân tách bằng dấu chấm phẩy như thế này.
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }5
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }6
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }7
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }0
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }7
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }2
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }3. Khi bắt đầu lần lặp đầu tiên của vòng lặp, biểu thức khởi tạo được thực thi. Trong trường hợp mã bảng thời gian,
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }4 được khởi tạo thành giá trị
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }5. Sau đó, mỗi lần chạy vòng lặp, biểu thức điều kiện [trong trường hợp này là
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }6] được kiểm tra và vòng lặp chỉ được nhập nếu điều kiện là
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }7. Cuối cùng, ở cuối mỗi lần lặp, biểu thức sửa đổi được thực hiện. Trong trường hợp mã bảng thời gian, biến
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }4 được tăng lên
Tất cả cấu trúc này loại bỏ một cách gọn gàng mọi yêu cầu đặt các điều khiển cho một vòng lặp bên trong phần thân của nó, giải phóng nó chỉ dành cho các câu lệnh mà bạn muốn vòng lặp thực hiện
Hãy nhớ sử dụng dấu ngoặc nhọn với vòng lặp
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }1 nếu nó chứa nhiều hơn một câu lệnh, như trong
Ví dụ 4-34. Vòng lặp for from có thêm dấu ngoặc nhọn________số 8
Hãy so sánh thời điểm sử dụng vòng lặp
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }1 và
$i = 1, $j = 1 // Initialize $i and $j $i + $j < 10 // Terminating condition $i++ , $j++ // Modify $i and $j at the end of each iteration1. Vòng lặp
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }1 được thiết kế rõ ràng xung quanh một giá trị duy nhất thay đổi thường xuyên. Thông thường, bạn có một giá trị tăng dần, như khi bạn được chuyển qua một danh sách các lựa chọn của người dùng và muốn xử lý lần lượt từng lựa chọn. Nhưng bạn có thể biến đổi biến theo bất kỳ cách nào bạn muốn. Một dạng phức tạp hơn của câu lệnh
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }1 thậm chí còn cho phép bạn thực hiện nhiều thao tác trong mỗi tham số trong ba tham số
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }
Tuy nhiên, điều đó phức tạp và không được khuyến nghị cho người dùng lần đầu. Điều quan trọng là phân biệt dấu phẩy với dấu chấm phẩy. Ba tham số phải được phân tách bằng dấu chấm phẩy. Trong mỗi tham số, nhiều câu lệnh có thể được phân tách bằng dấu phẩy. Do đó, trong ví dụ trước, mỗi tham số thứ nhất và thứ ba chứa hai câu lệnh
$i = 1, $j = 1 // Initialize $i and $j $i + $j < 10 // Terminating condition $i++ , $j++ // Modify $i and $j at the end of each iteration
Điều chính cần rút ra từ ví dụ này là bạn phải phân tách ba phần tham số bằng dấu chấm phẩy, không phải dấu phẩy [chỉ được sử dụng để phân tách các câu lệnh trong phần tham số]
Vì vậy, khi nào thì câu lệnh
$i = 1, $j = 1 // Initialize $i and $j $i + $j < 10 // Terminating condition $i++ , $j++ // Modify $i and $j at the end of each iteration1 phù hợp hơn câu lệnh
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }1? . Chẳng hạn, nếu bạn muốn kiểm tra một số đầu vào hoặc lỗi đặc biệt và kết thúc vòng lặp khi nó xảy ra, hãy sử dụng câu lệnh
$i = 1, $j = 1 // Initialize $i and $j $i + $j < 10 // Terminating condition $i++ , $j++ // Modify $i and $j at the end of each iteration1
Các câu lệnh có điều kiện được sử dụng để thực thi các khối mã khác nhau dựa trên các điều kiện khác nhau. Một điều kiện đánh giá một biểu thức Boolean, nghĩa là một cái gì đó trả về một giá trị. Nếu biểu thức là đúng, nó sẽ thực thi mọi thứ bên trong khối mã của nó. Một khối mã là một nhóm các câu lệnh được bao quanh bởi {}
Điều kiện là các biểu thức mà PHP kiểm tra hoặc đánh giá để xem chúng đúng hay sai. Các điều kiện được sử dụng trong các câu lệnh phức tạp để xác định xem có nên thực hiện một khối các câu lệnh đơn giản hay không. Để thiết lập điều kiện, bạn so sánh các giá trị bằng toán tử so sánh
Ví dụ về Điều kiện
- Hai giá trị có bằng nhau không?
- Giá trị này lớn hơn hay nhỏ hơn giá trị khác?
- Liệu một chuỗi phù hợp với một mẫu?
- Mã ZIP có năm ký tự số không?
Bạn cũng có thể thiết lập các điều kiện mà bạn đặt hai hoặc nhiều câu hỏi
So sánh giá trị
Bạn có thể so sánh các số hoặc chuỗi để xem chúng có bằng nhau hay không, liệu cái này lớn hơn cái kia hay không hoặc liệu chúng có bằng nhau không. Bạn so sánh các giá trị với các toán tử so sánh. PHP đánh giá phép so sánh và trả về đúng hoặc sai
Bạn có thể so sánh cả số và chuỗi. Các chuỗi được so sánh theo thứ tự bảng chữ cái, với tất cả các ký tự viết hoa đến trước bất kỳ ký tự viết thường nào. Ví dụ, SS đến trước Sa
Các chuỗi được so sánh dựa trên mã ASCII của chúng. Trong bộ ký tự ASCII, mỗi ký tự được gán một mã ASCII tương ứng với một số từ 0 đến 127. Khi các chuỗi được so sánh, chúng được so sánh dựa trên mã này. Ví dụ: số đại diện cho dấu phẩy là 44. Khoảng thời gian tương ứng với 46. Do đó, nếu so sánh dấu chấm và dấu phẩy, thì khoảng thời gian đó được đánh giá là lớn hơn
Kiểm tra nội dung biến
Đôi khi, bạn chỉ cần biết liệu một biến có tồn tại hay không hoặc loại dữ liệu nào có trong biến đó
isset[$varname]. Đúng nếu biến được đặt, ngay cả khi không có gì được lưu trữ trong đó
trống[$varname]. Đúng nếu giá trị là 0 hoặc là một chuỗi không có ký tự nào trong đó hoặc không được đặt
Bạn cũng có thể kiểm tra loại dữ liệu trong biến
- is_int[$số]
- is_array[$var2]
- is_float[$number]
- is_null[$var1]
- is_numeric[$string]
- is_string[$string]
Bạn cũng có thể kiểm tra tình trạng tiêu cực bằng cách sử dụng dấu chấm than [. ] trước biểu thức
Tham gia nhiều so sánh
Thường thì bạn cần hỏi nhiều hơn một câu hỏi để xác định tình trạng của mình. Điều này yêu cầu bạn tham gia so sánh, có định dạng chung sau
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }4
So sánh được kết nối bởi một trong ba từ sau đây
- và. Cả hai so sánh đều đúng
- hoặc. Một hoặc cả hai so sánh đều đúng
- xor. Chỉ có một trong những so sánh là đúng
Câu lệnh điều kiện chỉ thực hiện một khối câu lệnh khi một số điều kiện nhất định là đúng. Hai loại câu lệnh điều kiện hữu ích là
Một câu lệnh if. Thiết lập một điều kiện và kiểm tra nó. Nếu điều kiện là đúng, một khối câu lệnh sẽ được thực thi
Một tuyên bố chuyển đổi. Thiết lập một danh sách các điều kiện thay thế. Nó kiểm tra điều kiện thực và thực thi khối câu lệnh thích hợp
1. Sử dụng câu lệnh if
Một điều kiện được xác định bởi từ khóa nếu theo sau là một biểu thức Boolean trong ngoặc đơn và bởi một khối mã. Nếu biểu thức là đúng, nó sẽ thực thi khối, nếu không nó sẽ bỏ qua nó. Bạn có thể tăng sức mạnh của điều kiện bằng cách thêm từ khóa khác. Điều này yêu cầu PHP thực thi một số khối mã nếu các điều kiện trước đó không được thỏa mãn
Bạn cũng có thể thêm một từ khóa khác, theo sau là một điều kiện khác và một khối mã để tiếp tục yêu cầu PHP cung cấp thêm điều kiện. Bạn có thể thêm bao nhiêu elseif tùy thích sau dấu if. Nếu bạn thêm một cái khác, thì nó phải là cái cuối cùng trong chuỗi điều kiện. Ngay khi PHP tìm thấy một điều kiện có giá trị là true, nó sẽ ngừng đánh giá các điều kiện còn lại
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }5
Cú pháp thay thế
PHP có một cú pháp thay thế cho các câu điều kiện. Trong cú pháp này, dấu ngoặc mở của câu lệnh if được thay thế bằng dấu hai chấm, dấu ngoặc đóng bị loại bỏ và dấu ngoặc đóng cuối cùng được thay thế bằng từ khóa endif
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }6
2. Sử dụng câu lệnh chuyển đổi
Một cấu trúc điều khiển khác tương tự như if…else là switch…case. Cấu trúc này chỉ đánh giá một biểu thức và thực thi khối tùy thuộc vào giá trị của nó
Đối với hầu hết các tình huống, câu lệnh điều kiện if hoạt động tốt nhất. Tuy nhiên, đôi khi bạn có một danh sách các điều kiện và muốn thực hiện các câu lệnh khác nhau cho từng điều kiện
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }7
Câu lệnh switch kiểm tra giá trị của $variable_name. Sau đó, tập lệnh bỏ qua phần trường hợp cho giá trị đó và thực thi các câu lệnh cho đến khi nó đến câu lệnh ngắt hoặc kết thúc câu lệnh chuyển đổi. Nếu không có phần chữ hoa chữ thường cho giá trị của $variable_name, tập lệnh sẽ thực thi phần mặc định
Khi trường hợp khớp với giá trị hiện tại của biểu thức, PHP sẽ thực thi mã bên trong trường hợp đó. Ngay khi PHP tìm thấy câu lệnh ngắt, nó sẽ thoát khỏi switch…case. Trong trường hợp không có trường hợp nào phù hợp với biểu thức, PHP sẽ thực thi theo mặc định, nếu có, nhưng đó là tùy chọn
Việc ngắt quãng là bắt buộc nếu bạn muốn thoát khỏi switch…case. Nếu bạn không chỉ định bất kỳ điều gì, PHP sẽ tiếp tục thực thi các câu lệnh, ngay cả khi nó gặp trường hợp mới
Cú pháp thay thế
Câu lệnh chuyển đổi cũng có một cú pháp thay thế, sử dụng từ khóa endswitch để kết thúc câu lệnh
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }8
Cú pháp thay thế thường thích hợp hơn cho các câu lệnh có điều kiện dài hơn vì khi đó sẽ dễ dàng biết được vị trí kết thúc của các câu lệnh đó
Toán tử bậc ba
Ngoài các câu lệnh if và switch, còn có toán tử bậc ba [?. ]. Toán tử này có thể thay thế một mệnh đề if/else duy nhất. Toán tử lấy ba biểu thức. Nếu biểu thức đầu tiên được đánh giá là đúng, thì biểu thức thứ hai được trả về và nếu biểu thức sai, biểu thức thứ ba được trả về
Biểu thức toán tử bậc ba
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }9
Trong PHP, toán tử này được sử dụng như một biểu thức và như một câu lệnh
Câu lệnh toán tử ternary
for [$i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++] { // ... }0
Biểu thức thuật ngữ lập trình đề cập đến mã đánh giá thành một giá trị, trong khi câu lệnh là một đoạn mã kết thúc bằng dấu chấm phẩy hoặc dấu ngoặc nhọn đóng