Giáo trình Lập trình PHP cơ bản - Chương 3: Các cấu trúc điều khiển, vòng lặp, hàm tự tạo, mảng

C H
Ư Ơ
N G  
3
Các cấu trúc điều khiển, Vòng lặp,  
Hàm tự tạo, Mảng  
Các chủ đề chính  
 
Mục tiêu  
Sau khi hoàn thành chương này, chúng ta sẽ có thể:  
▪ Trình bày được bản chất cũng như sự khác nhau giữa các câu lệnh  
điều kiện, vòng lặp.  
▪ Vận dụng được các câu lệnh điều kiện và vòng lặp vào bài toán  
thực tế.  
▪ Vận dụng được cách chèn file bằng câu lệnh include hoặc require  
trong PHP.  
▪ Xây dựng được các hàm tự tạo và ứng dụng trong các bài toán cụ  
thể.  
▪ Biết cách tạo mảng và truy xuất các phần ử của mảng.  
▪ Vận dụng được các hàm sắp xếp trong mảng khi mảng được đánh  
chỉ mục tuần tự hoặc không tuần tự  
Câu hỏi kiểm tra mở đầu  
Trả lời các câu hỏi sau  
1. Để giải quyết bài toán tính n!theo bạn chúng ta nên sử dụng?  
a. Câu lệnh if  
b. Câu lệnh switch  
c. Vòng lặp for  
d. Vòng lặp while  
2. Theo bạn, đoạn mã sau hiển thị ra cái gì?  
$i = 5;  
Do  
{
echo $i;  
$i--;  
}
While $i > 5;  
 
a. Không hiển thị ra gì cả  
b.5, 4, 3, 2, 1  
c.5  
d.5, 4, 3, 2, 1, 0  
3. Biến toàn cục là?  
a. Biến có phạm vi toàn chương trình  
b. Biến có phạm vi trong hàm  
c. Không có biến toàn cục  
4. Trong C++mảng có số chỉ mục bắt đầu là?  
a.0  
b.1  
c. Tùy ý  
5. Để duyệt mảng, thông thường chúng ta sử dụng  
a. Vòng lặp while  
b. Vòng lặp do ... while  
c.Vòng lặp for  
1.Các cấu trúc điều khiển  
1.1 Câu lệnh điều kiện  
Câu điều kiện cho phép chúng ta xác định khối mã sẽ được thực  
hiện chỉ khi một số điều kiện được đáp ứng. PHP cung cấp hai loại câu  
lệnh điều kiện. Đầu tiên là if ... elseif ... else, cho phép  
chúng ta kiểm tra một số biểu thức và thực thi câu lệnh theo giá trị của  
chúng. Nếu chúng ta muốn kiểm tra một biểu thức duy nhất đối với một  
số giá trị, PHP cũng cung cấp một câu lệnh switch ... case.  
Câu lệnh if  
Câu lệnh if là một trong những tính năng quan trọng nhất của  
hầu hết các ngôn ngữ lập trình. Nó cho phép một trong những lựa chọn  
của các dòng mã lệnh được thực thi chỉ khi điều kiện được xác định là  
đúng. Ví dụ:  
// Canada sẽ hiển thị nếu $country là ca  
if ($country == "ca") echo ("Canada");  
Nếu có nhiều hơn một câu lệnh được thực thi khi điều kiện đúng,  
dấu ngoặc nhọn { } được sử dụng để xác định những dòng thuộc bên  
trong khối if:  
// Canada sẽ hiển thị nếu $country là ca  
if ($country == "ca") {  
echo ("Canada");  
echo (" Ottawa");  
}
Điều kiện nhánh  
Nếu điều kiện được kiểm tra trả về sai, PHP cho phép chúng ta  
xác định khối mã lệnh khác để thực thi bằng cách sử dụng từ khóa else.  
Mỗi điều kiện thực thi các khối mã được biết đến như là một nhánh, và  
   
mỗi nhánh phải được đặt trong vòng dấu ngoặc nhọn, nếu nó chứa nhiều  
hơn một dòng mã:  
if ($h < 0) {  
echo ("Negative");  
} else {  
echo ("Positive");  
}
PHP cũng cung cấp từ khóa elseif để kiểm tra các điều kiện  
luân phiên nếu điều kiện trong phần if là sai. Bất kỳ một câu lệnh  
elseifnào đều có thể được sử dụng trong câu lệnh if. Nhánh else  
kết thúc cuối cùng để cho phép chúng ta xác định mã lệnh sẽ được thực  
thi nếu không có điều kiện nào của ifhoặc elseiflà đúng.  
if ($h < 0) {  
echo ("Negative");  
} elseif ($h == 0) {  
echo ("Zero");  
} else {  
echo ("Positive");  
}
Nó là có thể, và thậm chí phổ biến để kiểm tra các điều kiện hoàn  
toàn khác nhau khi sử dụng elseif:  
if ($country == "ca") {  
// do something ...  
} elseif ($position == "h") {  
// do something else ...  
}
Chú ý rằng nếu tất cả các điều kiện là đúng, chỉ có nhánh đầu tiên sẽ được  
thực thi.  
Nó cũng phổ biến để tạo các câu lệnh if trong câu lệnh if khác.  
if ($country == "ca") {  
if ($position == "h") {  
echo ("Human resources positions in Canada.");  
} elseif ($position == "a") {  
echo ("Accounting positions in Canada.");  
}
}
Đoạn mã trên tương đương với:  
if ($country == "ca" && $position == "h") {  
echo ("Human resources positions in Canada.");  
} elseif ($country == "ca" && $position == "a") {  
echo ("Accounting positions in Canada.");  
}
PHP cũng cung cấp một cú pháp thay thế cho câu lệnh if: if:  
... endif;  
if ($country == "ca"):  
echo ("Canada");  
elseif ($country == "cr"):  
echo ("Costa Rica");  
elseif ($country == "de"):  
echo ("Germany");  
elseif ($country == "uk"):  
echo ("the United Kingdom");  
else:  
echo ("the United States");  
endif;  
// Phải là "us"  
Lưu ý là dấu ngoặc nhọn không được sử dụng và các điều kiện  
kiểm tra được theo sau bởi dấu hai chấm. Câu endifcuối cùng được sử  
dụng để biểu hiện sự kết thúc của khối thay thế cho việc đóng cặp }. Cú  
pháp thay thế này đặc biệt hữu ích nếu chúng ta muốn tạo khối HTML,  
Javascript, CSS bên trong câu lệnh ifcủa PHP:  
<?php if ($country == "ca"): ?>  
<TABLE>  
<CAPTION>Canada</CAPTION>  
<TR>  
...  
</TR>  
</TABLE>  
<?php elseif ($country == "cr"): ?>  
<TABLE>  
<CAPTION>Costa Rica</CAPTION>  
<TR>  
...  
</TR>  
</TABLE>  
<?php endif; ?>  
Trong ví dụ trên, bảng Canadasẽ được tạo ra nếu mã đất nước là  
“ca”và bảng Costa Ricanếu mã đất nước là “cr”.  
Switch  
Chúng ta sẽ tạo ra Form Hồ sơ xin việc gồm có một biến  
$countryvới ràng buộc chỉ gồm 2 ký tự. Giả sử chúng ta muốn kiểm  
tra biến này và hiển thị ra tên đầy đủ của đất nước, chúng ta có thể sử  
dụng câu lệnh if…elseif…elsenhư trên:  
if ($country == "ca") {  
echo ("Canada");  
} elseif ($country == "cr") {  
echo ("Costa Rica");  
} elseif ($country == "de") {  
echo ("Germany");  
} elseif ($country == "uk") {  
echo ("the United Kingdom");  
} else {  
// Must be "us"  
echo ("the United States");  
}
Trong ví dụ trên, chúng ta kiểm tra liên tục giá trị của biến  
$country, mặc dù nó không thay đổi từ dòng tiếp theo. Chúng ta sử  
dụng câu lệnh switchđể tránh sự hạn chế trên. Switch được sử dụng  
khi một biến duy nhất đang được kiểm tra với nhiều giá trị:  
switch ($country) {  
case "ca":  
echo ("Canada");  
break;  
case "cr":  
echo ("Costa Rica");  
break;  
case "de":  
echo ("Germany");  
break;  
case "uk":  
echo ("the United Kingdom");  
break;  
default:  
// Phải là "us"  
echo ("the United States");  
}
Trong ví dụ trên, nếu $contry bằng “ca”, “us”, hoặc  
“cr”, North America sẽ được hiển thị. Nếu nó bằng “uk”hoặc  
“de”, Europesẽ hiển thị. Chú thích “fall through”chỉ ra rằng  
chúng ta không sử dụng break. Đây là một dạng lập trình tốt bằng cách  
đưa những chú thích này vào để chứng minh rằng lỗi sẽ không được thực  
hiện. Khi câu lệnh switch được sử dụng trong hàm, người ta thường sử  
dụng return để dừng việc thực thi thay cho break.  
Người lập trình quen thuộc với các ngôn ngữ lập trình khác nên lưu  
ý rằng switch trong PHP linh hoạt hơn nhiều so với hầu hết các ngôn ngữ  
lập trình khác. Không giống C, Javavà thậm chí JavaScript, các  
giá trị có thể là trường hợp của bất kỳ loại vô hướng nào, bao gồm tất cả  
các số và chuỗi và chúng thậm chí có thể là biến.  
$val = 6;  
$a = 5;  
$b = 6;  
$c = 7;  
switch ($val) {  
// In JavaScript, it would be illegal to use a  
variable as a case label.  
// Not in PHP!  
case $a:  
echo ("five");  
break;  
case $b:  
echo ("six");  
break;  
case $c:  
echo ("seven");  
break;  
default:  
echo ("$val");  
}
1.2 Vòng lặp  
Lập trình sẽ là một nghề khá khó chịu nếu không có vòng lặp.  
Vòng lặp là một phương tiện để thực hiện một khối mã lệnh nếu điều kiện  
đúng, hoặc cho đến khi một điều kiện nhất định được đáp ứng. PHP có  
hai loại vòng: vòng lặp while kiểm tra các điều kiện trước hoặc sau mỗi  
lần lặp và tiếp tục lặp lại khi điều kiện còn đúng. Các loại khác của vòng  
lặp là vòng lặp for; trong trường hợp này, số lặp là cố định trước khi vòng  
đầu tiên, và không thể thay đổi.  
Vòng lặp while  
Vòng lặp while là lệnh lặp đơn giản nhất. Cú pháp khá giống với  
câu lệnh if:  
while (condition) {  
// statements  
}
Vòng lặp while đánh giá một biểu thức logic. Nếu biểu thức là sai,  
các mã lệnh trong dấu móc nhọn sẽ được bỏ qua. Nếu đúng, các mã lệnh  
trong dấu móc nhọn sẽ được thực thi. Khi dấu móc nhọn đóng } được  
đọc, điều kiện sẽ được tái kiểm tra lại và nếu điều kiện còn đúng, các mã  
lệnh trong vòng lặp được thực thi lại. Quá trình này tiếp tục cho đến khi  
điều kiện được đáp ứng.  
$i = 11;  
while (--$i) {  
if (my_function($i) == "error") {  
break; // Dừng vòng lặp!  
}
++$num_bikes;  
}
Trong ví dụ trên, nếu hàm ảo my_function không trả về bất kỳ lỗi  
nào, vòng lặp sẽ lặp lại 10 lần và dừng khi biến $i bằng 0. (Nhớ rằng 0  
được đánh giá là sai (false).) Nếu my_function trả ra lỗi, câu lệnh break  
 
được thực thi và kết thúc vòng lặp. Trong một số tình huống chúng ta  
mong muốn việc kết thúc chỉ lặp lại trong vòng lặp hiện thời, không phải  
toàn bộ vòng lặp. Để làm điều này, chúng ta sử dụng continue.  
$i = 11;  
while (--$i) {  
if (my_function($i) == "error") {  
continue; // Skip ahead to next iteration.  
// Don't increment $num_bikes  
}
++$num_bikes;  
}
Đoạn mã trên cũng lặp 10 lần nếu không có lỗi được trả về từ  
my_function. Tuy nhiên, nếu một lỗi xảy ra, nó sẽ bỏ qua để thực hiện  
vòng lặp tiếp theo, không tăng biến đếm $num_bikes. Giả sử $ivẫn  
còn lớn hơn 0, vòng lặp sẽ tiếp tục như bình thường.  
Giống như câu lệnh if, while thường là một cú pháp luân  
phiên, nó có ích cho việc nhúng các khối mã HTML.  
<?php  
$i = 0;  
while ($i <= 5):  
?>  
<TR><TD><INPUT type=text></TD></TR>  
<?php  
++$i;  
endwhile;  
?>  
Vòng lặp Do…While  
Câu lệnh do … whilegiống với câu lệnh while, trong câu lệnh  
này điều kiện được kiểm tra lúc kết thúc mỗi lần lặp chứ không phải lúc  
bắt đầu. Điều này có nghĩa là vòng lặp sẽ luôn được thực thi ít nhất một  
lần.  
echo ("<SELECT name='num_parts'>\n");  
$i = 0;  
do {  
echo ("\t<OPTION value=$i>$i</OPTION>\n");  
} while (++$i < $total_parts);  
echo ("</SELECT>\n");  
Với đoạn mã này, 0 sẽ luôn xuất hiện như một tùy chọn trong phần  
tử <SELECT>,thậm chí nếu $total_partsbằng 0.  
Câu lệnh whilevà do … whilethường được sử dụng để tăng  
hoặc giảm các tác toán tử điều khiển khi bắt đầu và kết thúc như trong ví  
dụ trên. Biến được sử dụng cho mục đích này là thỉnh thoảng tham chiếu  
tới các biến điều khiển lặp. Thông thường sử dụng câu lệnh while để đọc  
các bản ghi từ việc truy vấn cơ sở dữ liệu, các dòng từ một tệp hoặc các  
phần tử của mảng. Những chủ đề này sẽ được đề cập trong phần sau.  
Vòng lặp for  
Cú pháp của vòng lặp for là khá phức tạp, các vòng lăp for thường  
tiện lợi hơn các vòng lặp while.  
for ($i = 1; $i < 11; ++$i) {  
echo ("$i <BR> \n"); // Prints from 1 to 10  
}
Câu lệnh for yêu cầu 3 biểu thức trong dấu ngoặc đơn của nó, cách  
nhau bởi dấu chấm phẩy “;”. Đầu tiên là một câu lệnh gán để khởi tạo  
biến điều khiển lặp. Câu lệnh này được thực thi duy nhất một lần, trước  
lần lặp đầu tiên của vòng lặp. Thứ hai là một biểu thức logic để đánh giá  
lúc bắt đầu của mỗi lần lặp. Nếu biểu thức là đúng, vòng lặp được xử lý.  
Nếu sai, vòng lặp kết thúc. Thứ ba là một câu lệnh để thưc thi việc kết  
thúc của mỗi lần lặp. Nó thường được sử dụng để tăng hoặc giảm biến  
điều khiển lặp.  
Biểu thức giữa thường kiểm tra biến điều khiển lặp dựa vào giá trị  
đã định nghĩa trước đó, nhưng đây đây không phải là một trường hợp.  
Một vòng lặp sau đây là hoàn toàn hợp lệ.  
for ($i = 1; my_function($i) != "error"; ++$i) {  
// Do something with $i until my_function returns  
an error  
}
Tuy nhiên, đoạn mã này sẽ đơn giản hơn nếu chúng ta dùng vòng lặp  
while.  
$i = 1;  
while (my_function($i) != "error") {  
// Thực hiện các công việc với $i cho tới khi  
my_function trả về một lỗi.  
++$i;  
}
1.3 require và include files trong PHP  
PHP cung cấp hai câu lệnh require và include, cả hai câu lệnh này  
đọc và thực thi mã từ file xác định. Điều này cho phép chúng ta viết  
những hàm, các biến và các mã khác để tái sử dụng và lưu trữ chúng  
trong một file để có thể sau đó truy cập bằng bất kỳ kịch bản nào khác  
của chúng ta. Câu lệnh require thay thế toàn bộ nội dung của file được chỉ  
định. Điều này thích hợp cho mọi hoàn cảnh mà chúng ta muốn tạo ra các  
hàm và các biến dùng chung tới kịch bản của chúng ta.  
<?php  
define ("COMPANY", "Phop's Bicycles");  
define ("NL", "<BR>\n");  
?>  
 
Bây giờ chúng ta có thể thiết lập file common mới của chúng ta,  
chúng ta có thể tham chiếu tới nó từ bất kỳ các files khác của chúng ta  
bằng cách thêm vào:  
require ("common.php");  
echo (COMPANY . NL);  
Khi câu lệnh require được thay thế với nội dung của file  
common.php, các hằng của chúng ta được thừa nhận trong câu lệnh echo.  
Một bất lợi của hành động thay thế này là require không sử dụng được  
trong vòng lặp để gọi file khác trong mỗi lần lặp của vòng lặp. Đây là nơi  
để chúng ta đưa include vào.  
Câu lệnh include cũng truy cập mã của một file bên ngoài, nhưng  
nó đánh giá và thực thi mã trong file bên ngoài mỗi lần để câu lệnh  
include được bắt gặp, hơn là chỉ thay thế mã bên ngoài của nó một lần lúc  
bắt đầu thực thi. Giả sử chúng ta có ba files có tên là file1.php, file2.php  
và file3.php, chúng ta muốn đưa vào trong một trang PHP. Với include,  
chúng ta có thể làm điều này:  
for ($i = 1; $i <= 3; ++$i) {  
include("file" . $i . ".php");  
}
Nếu chúng ta thử làm điều này với require, nội dung của  
file1.phpsẽ thay thế câu lệnh requiretrong lần lặp đầu tiên của  
vòng lặp và đoạn mã đó cúng được thực thi lại trong lần lặp kế tiếp.  
Cả require và include đều thừa nhận file bên ngoài là  
HTML, vì vậy nội dung của các files bên ngoài sẽ được xử lý như HTML  
và không PHP, trừ khi chúng ta tránh HTML khi chúng ta đã làm trong  
common.phpvới cặp thẻ <?php ... ?>.  
PHP cũng cung cấp các chỉ dẫn auto_prepend_file và  
auto_append_file để có thể thiết lập trong file php.ini. Những chỉ dẫn này  
cho phép chúng ta tự động require một file bên ngoài lúc bắt đầu hoặc kết  
thúc mọi file PHP được phục vụ.  
1.4 Thoát một trang PHP  
Nếu một lỗi nghiêm trọng xảy ra (ví dụ, nếu chúng ta thất bại trong  
việc kết nối đến một cơ sở dữ liệu), Nó có thể không thực hiện phần còn  
lại của tập lệnh PHP của chúng ta chạy. Trong những trường hợp này,  
chúng ta có thể muốn hiển thị một thông báo lỗi, dừng thực thi trang PHP  
của chúng ta ngay lập tức và thoát khỏi trang. Để làm điều này, PHP cung  
cấp câu lệnh exit. Đây là một trong những câu lệnh đơn giản để làm chủ  
trong PHP. Nó chỉ đơn giản dừng tất cả việc thực thi, giống như câu lệnh  
break cho toàn bộ tài liệu. Bất kỳ mã - PHP, HTML, Javascript, hoặc mã  
khác - xuất hiện sau exit sẽ không được thực hiện:  
if (my_function ($i) == "error") {  
echo ("<BR><B>Có lỗi xảy ra.</B><BR>\n" .  
"không thể kết thúc việc nạp tài liệu.<BR>\n");  
exit;  
}
 
2. Hàm tự tạo  
Hàm là một khối mã mà có thể được định nghĩa một lần và sau đó  
được gọi từ các phần khác của chương trình. Điển hình, hàm lấy một đối  
số hoặc tập các đối số, thực hiện một tập các thao tác được định nghĩa  
trước và trả về một giá trị kết quả. Các hàm cho phép chúng ta viết nhiều  
môđum, các ứng dụng được cấu trúc một cách hợp lý.  
Bằng cách viết và kiểm tra các hàm tái sử dụng, chúng ta có thể lưu  
một lần và làm giảm số lỗi trong mã của chúng ta. PHP có nhiều hàm  
được xây dựng sẵn, chẳng hạn như gettype() và isset(). Trong phần này,  
chúng ta sẽ học làm thế nào để tạo ra các hàm do người dùng tự định  
nghĩa.  
2.1 Chúng làm việc như thế nào  
Hàm được khai báo với câu lệnh function. Ví dụ, tính lũy thừa 3  
của một số:  
// Khai báo và định nghĩa hàm  
function cube($num) {  
return $num * $num * $num;  
// Trả về $num thành lũy thừa 3  
}
// Gọi hàm cube():  
echo (cube(6));  
// In ra 216  
Dòng đầu tiên của mã trên có dạng:  
function Tên_hàm(parameters) {  
Thân hàm  
}
Tên của hàm (“cube” trong trường hợp này) đi sau từ khóa  
function và các tham số (nếu có) xuất hiện trong dấu ngoặc đơn và cách  
nhau bởi dấu phẩy. Thân hàm phải được đặt giữa cặp móc nhọn. Để gọi  
một hàm, chỉ cần sử dụng tên của nó theo sau là cặp ngoặc đơn và bao  
gồm các đối số trong đó nếu có.  
   
Gọi hàm cube(6)trong ví dụ trên cho kết quả là một biểu thức  
với giá trị là 216. Giá trị mà hàm trả về được quyết định bởi câu lệnh  
returnbên trong than hàm. Khi returnđược thực thi, hàm dừng và  
sự thực thi lại tiếp tục với những dòng gọi hàm, giá trị được trả về thay  
thế cho gọi hàm. Do vậy, dòng echo cube(6); tương đương với  
echo (216);.  
Hàm không nhất thiết phải có giá trị trả về. Hàm sau đây không sử  
dụng câu lệnh return:  
function js_alert($msg) {  
// Tạo một thông báo JavaScript sử dụng $msg  
echo (  
"\n<SCRIPT LANGUAGE='JavaScript'>\n" .  
" <!-- \n" .  
" alert (\"$msg\");\n" .  
" // --> \n" .  
"</SCRIPT>\n"  
);  
}
// Gọi js_alert():  
js_alert ("Password bạn nhập không hợp lệ.");  
Chúng ta cũng có thể sử dụng return để tạm dừng sự thi hành của  
một hàm, thậm chí nếu không có giá trị được trả về. Dưới đây, hàm  
js_alert () đã được sửa đổi để tạm dừng nếu $msg chứa một chuỗi rỗng:  
function js_alert($msg) {  
// Create a JavaScript alert using $msg  
if ($msg == "") return;  
echo (  
// Halt execution  
"\n<SCRIPT LANGUAGE='JavaScript'>\n" .  
" <!-- \n" .  
" alert (\"$msg\");\n" .  
" // --> \n" .  
"</SCRIPT>\n"  
);  
}
// Invoke js_alert():  
js_alert("The password that you entered is not valid.");  
js_alert (""); //This one won't generate the JavaScript code  
2.2 Truyền đối số  
Đối số cung cấp một cách để truyền dữ liệu đầu vào cho hàm. Khi  
chúng ta viết mã cube(6), "6" là đối số. Đối số có sẵn trong hàm như  
tham số $num. Tham số này lấy về giá trị của tham số tương ứng được  
truyền cho nó trong lúc gọi hàm. Hàm cube () sau đó sử dụng giá trị này  
để tính giá trị trả lại.  
Ví dụ newline() sau đây nhận một đối số, nó được sử dụng để  
quyết định xem có bao nhiêu dòng được in ra. Trong hàm, tham số $x mô  
tả khoảng cách dòng khi có dòng mới (trong trường hợp này là 5).  
function newline($x) {  
// Prints <BR> $x times  
for ($i = 0; $i < $x; ++$i) {  
echo ("<BR>\n");  
}
}
echo ("line1");  
newline(5);  
echo ("line2");  
 
Mặc định, đối dố được truyền bằng giá trị. Điều này có nghĩa là các  
biến tham số trong phạm vi hàm giữ một bản sao của giá trị truyền cho  
nó. Nếu thay đổi giá trị của tham số, nó sẽ không thay đổi giá trị của một  
biến trong câu lệnh gọi. Xem ví dụ sau đây:  
function print_double($n) {  
$n = $n * 2;  
echo ($n);  
}
$a = 5;  
echo ("$a <BR>\n");  
print_double($a);  
echo ($a);  
// In ra 5  
// In ra 10  
// In ra 5  
Giá trị của $a không thay đổi, ngay cả sau khi truyền tham số cho  
print_double (). Ngược lại, khi một đối số được truyền bởi tham chiếu,  
các thay đổi vào biến tham số nào dẫn đến sự thay đổi kết quả khi gọi  
biến của câu lệnh. Một ký hiệu (&) được đặt trước tên của tham số để cho  
biết rằng đối số sẽ được truyền bởi tham biến:  
function raise(&$salary, $percent) {  
// Increases $salary by $percent  
$salary += $salary * $percent/100;  
}
$sal = 50000;  
echo ("Pre-raise salary: $sal<BR>\n");// In ra 50000  
raise ($sal, 4);  
echo ("Post-raise salary: $sal<BR>\n");//In ra 52000  
Chúng ta cũng có thể thiết lập một giá trị mặc định cho tham số,  
điều này được thực hiện bằng cách gán một giá trị cho tham số trong khai  
báo hàm:  
function newline($x = 1) {  
// Prints <BR> $x times  
for ($i = 0; $i < $x; ++$i) {  
echo ("<BR>\n");  
}
}
echo ("line1");  
newline(); // Prints <BR> once  
echo ("line2");  
newline(2); // Prints <BR> twice  
Trong khai báo hàm, quan trọng nhất là vị trí của các tham số có giá  
trị mặc định phải bắt đầu từ bên phải. Đoạn mã sau sẽ tạo ra lỗi:  
function raise ($percent = 4, &$salary) {  
// Increases $salary by $percent  
$salary += $salary * $percent/100;  
}
$sal = 50000;  
echo ("Pre-raise salary: $sal<BR>\n");  
raise($sal);  
echo ("Post-raise salary: $sal<BR>\n");  
Đoạn mã trên sẽ cho ra kết quả cùng với thông báo sau:  
Tải về để xem bản đầy đủ
doc 45 trang Thùy Anh 13300 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình PHP cơ bản - Chương 3: Các cấu trúc điều khiển, vòng lặp, hàm tự tạo, mảng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • docgiao_trinh_lap_trinh_php_co_ban_chuong_3_cac_cau_truc_dieu_k.doc