Bạn đã bao giờ dừng lại chỉ đường cho một lái xe lạc đường hay chưa ? Lấy một ví dụ bạn thử đặt mình vào tình huống như thế này:
Chào ông bạn ông có thể chỉ cho tôi đương tới ngã tư Vọng được không? - Tất nhiên rùi ông đi theo lối này ,rẽ trái ,đi tiếp,rẽ phải và ông sẽ tìm thấy lối ra ngã tư Vọng á "
Cách chỉ đường trên thật là rắc rối như một đường kẻ chằng chịt: Đi theo đường này,rẽ ở đây hic hic thế thì có mà ra Đại La mất .hichic đây là một cách chỉ dẫn khá củ chuối và ...
Họ không chỉ cho người ấy biết là phải đi đường bao xa rồi phải đi đến đâu để có thể nhìn thấy biển hướng dẫn chỉ là Phố Vọng ở đâu ...
Và nếu bạn là người tận tình thì hic hic bạn nên dẫn người ấy đi cho đến nơi đến chốn nhất là chỉ đường cho một cô gái xinh đẹp á .
Và trong ngôn ngữ PHP cũng vậy nếu không điều khiển cấu trúc thì nó cũng giông như hướng dẫn chỉ đường thứ nhất á rất chi là lộn xộn.
Việc điều khiển cấu trúc là những cốt lõi trong chương trình này.Chúng cho phép một ngôn ngữ lập trình có thể trả lời trực tiếp phụ thuộc vào những gì đang xảy ra, đồng thời nó cho phép thực hiên nhiệm vụ một cách hoàn hảo
Trong ngôn ngữ PHP có hai loại hình cơ bản để điều khiển cấu trúc :
Ngôn ngữ điều kiện
Điều khiển theo một vòng khép kín
Trong bài này bạn sẽ thấy một bài ví dụ về điều khiển cấu trúc .Bây giờ chúng ta sẽ học kĩ hơn.
+ Ngôn ngữ điều kiện:
Ngôn ngữ điều kiện có thể giúp bạn chia nhỏ các phần khác nhau trong một ngôn ngữ ;ập trình phụ thuộc vào đó là một hay nhiểu điều kiện ,xác định đúng hay sai .Nói một cách đơn giản nó cho phép bạn thử nghiệm và điều hành những thao tác khác nhau dựa vào kết quả
-Câu lệnh Nếu ( If statement)
Xem ví dụ sau :
$x=1;
if ($x == 1) print '$x is equal to 1';
?>
Ví dụ này biểu thị một cách đơn giản nhất của một câu lệnh.Các câu lệnh luôn bắt đầu bằng chữ "If" theo sau là các điều kiện được đặt trong ngoặc đơn.Nếu câu lệnh điều kiện được công nhân là đúng thì sau đó các câu lệnh kèm theo điều kiện sẽ được chấp nhận .Trong trường hợp này nếu điều kiện là sai thì không thể thực hiện được gì và bạn sẽ thấy một cửa sổ Browser trống rỗng khi chạy chương trình ngôn ngữ lập trình.
Nếu có hơn một câu lệnh được thực hiện trong cách điều khiển cấu trúc thì phải cho chúng vào trong ngoặc {
$x=1;
if ($x == 1) {
print '$x is equal to 1';
$x++;
print 'now $x is equal to 2';
}
?>
Nên nhớ rằng vị trí của các yếu tố không ảnh hưởng tới việc thực hiện của ngôn ngữ lập trình. Các ví dụ được sắp xếp dưới đây rất hoàn thiện không chỉ trong các câu lệnh mà cong ở tất cả hình thức điều khiển theo một chu kì kín
if ($x == 1) print '$x is equal to 1';
if ($x == 1)
print '$x is equal to 1';
if ($x == 1) { print '$x is equal to 1'; }
if ($x == 1) {
print '$x is equal to 1';
}
Với sự rõ ràng này các nhà lập trình lựa chọn việc sử dụng cách viết lùi vào và ngoặc " { } " thậm chí cả một dòng mã .Tuy nhiên người ta vẫn thường ưa dùng mã số riêng.
Bạn cũng có thể để tất cả điều kiện trong ngoặc đơn ,để thực hiện tất cả các điều kiện thì đòi hỏi tất cả các điều kiện phải đúng.
$x=1;
if ($x == 1 OR $x == 2) print '$x is equal to 1 (or maybe 2)';
?>
Các câu lệnh khác ( Else Statement)
Như tên của nó bạn có thể thực hiện thêm một số chức năng khác nếu điều kiện bên trong 1
(If Statement) được xác định là sai:
$x=1;
if ($x == 2) {
print '$x is equal to 2';
} else {
print '$x is equal to 1';
}
?>
+ Câu lệnh Else if Statement
Đến nay chúng ta vẫn có thể thực hiện một lệnh mà điều kiện không đúng.Nhưng còn nhiều điều kiện thì sao? Bạn có thể sử dụng một loạt câu lệnh If Statement để thử nghiệm tính khả thi của mỗi điều kiện, nhưng trong một số trường hợp thì lựa chọn đó không thích hợp vậy bạn phải dùng tới Else if Statement
Sự kết hợp giữa If ,Else Statement và Else if Statement được thực hiện liên tiếp nếu điều kiện trong If Statemnet là sai .Khi điều kiện trong một Else if Statement được xác định là đúng thì các lện sẽ được thực hiện.Ngôn ngữ lập trình sẽ ngừng thực hiện toàn bộ If | Else if| Else Statement .Phần còn lại của ngôn ngữ lập trình sẽ tiếp tục thực hiện .
Xem ví dụ sau :
$x=1;
if ($x == 2) {
print '$x is equal to 2';
} else if ($x == 1) {
print '$x is equal to 1';
} else {
print '$x does not equal 2 or 1';
}
?>
Phần cuối còn lại của câu lệnh sẽ bị loại bỏ nếu bạn không muốn thực hiện vì If hoặc Else If là đúng
$x=0;
if ($x == 2) {
print '$x is equal to 2';
} else if ($x == 1) {
print '$x is equal to 1';
}
?>
Trong trường hợp này ko có điều kiện của If hoặc Else if statement là đúng và Else statement không được cung cấp dẫn tới không có kết quả của Browser .
+Sự thay đổi :
Trong những tình huống này sự thay đổi là lựa chọn tốt nhất đối với If | Else if| Else Statement để kiểm tra có nhiều giá trị chống lại 1 đièu kiên thay đổi hay không.Đây là dạng câu lệnh cơ bản
$var = "yes";
switch ($var) {
case "yes":
print '$var is equal to yes';
break;
case "no":
print '$var is equal to no';
break;
}
?>
Sau khi chạy từng phần mã hầu hết sẽ nên có nghĩa đối với bạn .Ở dòng đầu tiên của câu lện chúng ta thấy có sự thay đổi đòng nhất hơn được thực hiện trong ngoặc đơn. Mỗi trường hợp có thể có những giá trị thay đổi được.
Những thay đổi được thực hiện từng phần nhỏ trên If/Else if/Else statements.Mỗi trường hợp giá trị phải khớp với giá trị thay đổi,mỗi câu lệnh được thực hiện gồm các trường hợp khác
Để tránh trường hợp này xảy ra người ta sử dụng 1 câu lệnh khác " Break;" .Kết thúc việc thực hiện thay đổi câu lệnh và để cho ngôn ngữ lập trình tiwps tục thực hiện, nó cũng thực hiện một vòng khép kín .
Bạn cũng có thể tùy ý sử dụng trường hợp đặc biệt gọi là " default" ( thao tác cài đặt trước) .Trường hợp này thao tác giống như Else Statement ,và thực hiện nếu các trường hợp khách là sai . TRường hợp này có thể là trường hợp cuối cùng bạn biết:
$var = "yes";
switch ($var) {
case "maybe":
print '$var is equal to yes';
break;
case "no":
print '$var is equal to no';
break;
default:
print 'none of the other two cases were true, so this sentance will be printed out instead.';
}
?>
Giông như Break Statement là Exit Statement. Lối ra thường được sử dụng trong các tình huống mà bạn chạy chương trình gặp lỗi nặng( fatal error) (Ví dụ như user đăng nhập sai pass) hoặc bất kì lúc nào bạn cần kết thúc thực hiện ngôn ngữ lập trình trược khi nó tự động chấm dứt :
$var = "yes";
switch ($var) {
case "yes":
print '$var is equal to yes';
exit;
case "no":
print '$var is equal to no';
break;
}
print "this will not be printed, because the script will have terminate before this line is reached";
?>
Không giống như break, exit có thể được sử dụng ở bất cứ đâu trong ngôn ngữ lập trình của bạn,trong và ngoài điều khiển cấu trúc.
+ Ba bước của một cơ chế vận hành
Mặc dù theo thuật ngữ kĩ thuật một cơ chế vận hành không phải là một cấu trúc điều khiển gồm ba phần ,biểu hiện bằng dấu " ? " có thể sử dụng với If/Else Statements .Nó cũng có thể được sử dụng trong những trường hợp mà bạn muốn thực hiện đọc lậpphụ thuộc vào điều kiện nào đúng hay sai
$x = 1;
($x==1) ? (print '$x is equal to 1') : (print '$x is not equal to 1');
?>
Điều kiện phải được đăt trong ngoặc đơn đầu tiên .Nếu thực hiện được thì phần lệnh trong ngoặc đơn thứ hai cũng sẽ thự hiện.Nếu không phàn lệnh trong ngoặc đơn thứ 3 sẽ thự hiện
(condition) ? (executes if the condition is true) : (executes if the condition is false);
Bãn sẽ thấy sự hữu ích của nó như thế nào trong phần tiếp theo.
Control Loops ( Điều khiển theo chu kì)
Trong PHP thường có những trường hợp cá biệt mà bạn cần thực hiện lại nhiệm vụ ,như nhận sữ liệu từ các cơ sở dữ liệu ,gửi e-mail vào danh sách mail hoặc xem lại nội dung của bài viết .Điều khiển theo chu kì sẽ cho phép bạn thực hiện những nhiệm vụ này một cách hiệu quả .
While Loops (Chu kì thời gian)
Đây là những hình thức dơn giản nhất của chu kì
$x=1;
while ($x <=10) {
print "$x
";
$x++;
}
?>
Khi bạn chạy chương trình này bạn sẽ thấy các số từ 1 đến 10 hiện trên màn hình của bạn.Hãy xem mã . Trong nhiều trường hợp nó rất giống với If statement .Trước hết đó là thời gian đồng nhất kèm theo điều kiện trong ngoặ đơn.
Các lệnh trong một chu kì sẽ được thực hiện miễn là điều kiện trong ngoặc đơn được xác định là đúng .Khi điều kiện có giá trị được kiểm tra trước khi chu kì đó được thực hiện ,nếu điều kiện sai thì các lệnh trong chu kì đó không thể thực hiện được.
Do...While Loops ( Thực hiện chu kì thời gian)
Do...While Loops có quan hệ với While Loops:
$x=11;
do {
print "$x
";
$x++;
} while ($x <=10);?>
Điểm khác nhau cơ bản là cách thực hiện ,giá tẹi của điều kiện trong Do...While Loop được thử nghiệm sau khi lịch trình hoạt động.Điều này có nghĩa trong các ví dụ trên $x đã cho ra kết quả một lần ,sau đó khi việc thực hiện chu kì kết thúc thì $x lớn hơn 10
For Loops ( Đối với cho kì )
for($x=1; $x<=10; $x++) {
print "$x
";
}
?>
Trên đây là một ví dụ của một chu kì .For Loops rất giống với While Loops nhưng sử dụng thuận tiện hơn trong nhiều trường hợp .Chúng cũng là những chu kì phức tạp nhất trong PHP .,vay mựơn phần cú pháp và chức năng từ chương trình C . Đây là cấu chúc điều khiển cuối cùng mà bài này giới thiệu tới các bạn
Nếu như bạn đoán được đoạn trích ở trên cho ra một một kết quả như ví dụ 1 của while loop ,có thể bạn đã đúng .Hãy xem xét tại sao nó lai vận hành như thế .Trong dấu ngoặc đơn For Loops thực hiện 3 điều kiện ngăn cách bởi dấu " ; " .Điều kiện thứ nhất chỉ được thực hiện 1 lần khi chu kì bắt đầu .Trong trường hợp này $x có giá trị bằng 0
Điều kiện tiếp theo là điều kiện được kiểm tra mỗi lần khi chu kì hoạt động .Mỗi lần điêềukiện sai chu kì sẽ ngừng thực hiện.
Cũng giống như While Loops ,nếu trong lần vận hành đầu tiên mà điều kiện sai thì không có lệnh nào trong chu kì được thực hiện.
Điều kiện cuối cùng sẽ được thực hiện khi chu kì hoạt động sau khicác lệnh được thực hiện .Nên nhớ là không có dấu " ; " sau điều kiẹn cuối cùng ( Bạn thấy nó có giống Pascal không nào )
Như bạn đã biết ,For Loops thực hiện nhưng chức năng tương tự như While Loops nhưng hiệu quả hơn .Nói cách khác đó là cách tốt nhất để sử dụng For Loops ,những trương hợp mà bạn biết yếu tố nào là quan trọng để ban thực hiện.
The Foreach Loop
Chu kì mới này được giới thiệu trong phiên bản 4 của PHP .Nó được sử dụng nội bộ thông qua các yếu tố ngôn ngữmcho phép ban có thể dễ dàng thực hiện việc chia ra kết quả dựa vào các yếu tố đó. Để tránh sự phức tạp chúng tôi sẽ khái quát riêng chu kì này khi ngôn ngữ này được giới thiệu và phổ biến.
Cuối cùng :
Trong bài viết này chúng tôi đã giới thiệu đến 2 cấu trúc điều khiên mà ngôn ngữ PHP hỗ trợ.Những cấu trúc này là nhân tố quan trọng trong điều khiển tốc độ chương trình,các định nghĩa được giới thiệu sẽ được sử dụng rộng rãi từ bây giờ
Trong bài tiếp theo chúgn tôi sẽ đề cập đến các chức năng đã được định nghĩa trước, các chức năng này đóng một vai trò vô cùng quan trọng trong việc phát triển của ngôn ngữ lập trình.
Những điều cần nhớ :
Các cấu trúc điều khiển chi phối tốc dọ của chương trình,cho phép bạn có thể chia nhỏ các phần khác nhau của một ngôn ngữ lập trình ,phụ thuộc vào đầu vào và có thể dễ dàng thực hiện các thao tác.
Có hai loại cấu trúc điều khiển trong PHP : Ngôn ngữ điều kiện và Điều khiển theo một vòng khép kín
Hai loại cấu trúc trên chỉ có các lệnh không dùng ngoặc ,tuy nhiên các nhà lập trình viên thường sử dụng chúng để tạo mã dễ hiểu hơn.Các lêệnhnày thường được ứng dụng với cùng lý do
Break; có thể được dùng để kết thúc lệnh hiện thời .Nó cũng có thể được sử dụng để xoá bỏ For Loops và While Loops ,Exit ,xoá bỏ toàn bộ nhiệm vụ của ngôn ngữ laậptrình .Break còn được dùng ở bất kì đâu trong ngôn ngữ lập trình