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
|