Các bản tin khác
- Bài 7: Khái niệm cơ bản về Cookie và session trong PHP
- Bài 6: Tổng quan về mảng và các hàm hỗ trợ trong PHP
- Bài 5: Tìm hiểu quy trình làm việc trên file trong PHP
- Bài 4: Xử lý giá trị form trong PHP
- Bài 3: Toán tử và biểu thức trong PHP
- Bài 2: Kiến thức tổng quan về lập trình PHP
- Bài 1: Giới thiệu, Cấu hình và cài đặt PHP
Lập Trình PHP Căn Bản
Bài 8: Khái niệm về hàm và gọi lại hàm trong PHP
Để giảm thời gian lặp lại 1 thao tác code nhiều lần, PHP hỗ trợ người lập trình việc tự định nghĩa cho mình những hàm có khả năng lặp lại nhiều lần trong website. Việc này cũng giúp cho người lập trình kiểm soát mã nguồn một cách mạch lạc. Đồng thời có thể tùy biến ở mọi trang. Mà không cần phải khởi tạo hay viết lại mã lệnh như HTML thuần.
1- Hàm tự định nghĩa:
Cú pháp:
function functiono_name()
{
//Lệnh thực thi
}
Tên hàm có thể là một tổ hợp bất kỳ những chứ cái, con số và dấu gạch dưới, nhưng phải bắt đầu từ chứ cái và dấu gạch dưới.
Ví dụ:
<?php
function name()
{
$name= array("Kenny", "Jiro", "Calvin", "Gillian");
foreach ($name as $test)
{ echo "$test<br>"; }
}
name();
?>
2- Hàm tự định nghĩa với các tham số:
Cú pháp:
function function_name($gt1,$gt2)
{
//Hành động
}
Ví dụ:
<?php
function indulieu($text)
{
echo "$text<br>";
}
indulieu("welcome");
indulieu("who are you ?");
?>
3- Hàm tự định nghĩa với giá trị trả về:
Cú pháp:
function function_name(Có hoặc không có đối số)
{
//Thuc thi
return giatri;
}
Ví dụ:
<?php
function tinhtong($a,$b)
{
$total=$a+$b;
return $total;
}
echo tinhtong(19,31)
?>
4-Gọi lại hàm trong PHP:
PHP cung cấp nhiều hàm cho phép triệu gọi lại file. Như hàm include("URL đến file"), require("URL Đến file").
Ngoài hai cú pháp trên còn có include_once(), require_once(). Hai hàm này cũng có trách nhiệm gọi lại hàm. Những chúng sẽ chỉ gọi lại duy nhất 1 lần mà thôi.
Ví dụ:
Tạo file top.html với nội dung:
<html><head><title>Welcome to you</title></head>
<body>
<table border=1 width=700>
<tr><td colspan=5 align=center>Banner</td></tr>
<tr>
<td align=center> Home </td>
<td align=center> News </td>
<td align=center> Music </td>
<td align=center> Download</td>
<td align=center> Contact</td></tr>
Tạo file body.html với nội dung:
<tr><td colspan=5 align=center>
Noi dung website
</td>
</tr>
Tạo file bottom.html với nội dung:
<tr>
<td colspan=5 align=center> Copyright@ abc.com</td>
</tr>
</table>
</body>
</html>
Tạo trang index.php với nội dung:
<?php
include("top.html");
include("body.html");
include("bottom.html");
?>
Tổng kết:
Kết thúc bài học này, hẳn các bạn đã có những khái niệm cơ bản về hàm và cách sử dụng lại mã PHP. Trên ứng dụng thực tế việc dùng các hàm để triệu gọi đóng vai trò khá quan trọng, nó giúp mã nguồn của người sử dụng logic và dễ dàng chỉnh sửa hơn, việc ứng dụng nó trên website như thế nào cũng sẽ tùy biến hơn so với cách viết trực tiếp trên từng file.
Bài tập áp dụng:
1- Thiết kế website hoàn chỉnh bằng việc phân tách các file.
2- Xây dựng website với yêu cầu sau. Cho phép người sử dụng chọn mua số lượng hàng. Với giá tương ứng với từng mặt hàng. Sau đó xuất tổng tiền(đã bao gồm thuế VAT 10%).
(Bùi Quốc Huy)
46665
PHP Framework những điều nên và không nên
Khái quát về PHP Framework
Học PHP như thế nào khi bạn chưa biết lập trình?
Tự học lập trình PHP dễ hay khó ?
Web 2.0 - Khái niệm và bản chất của chúng như thế nào ?



Nguyễn Văn Khoa (15:51 25/01/2010)
đang cần////////////////Rất chi là thiết thực
Đại ca ơi. bổ sung cho bọn em chương VÍ dụ cụ thể, để biết dc nó hđ ntn..
thanks
Reply
nguyen huy hoang (18:35 24/03/2010)
Hi vọng bạn sẽ có thêm nhiều bài viết bổ ích như thế này.Reply
nguyễn huyền trang (00:22 09/04/2010)
bác ơi, bác cho viscuj cụ thể hơn được không, e chuối lắm, bác thông cảmReply
Thanh Sang (10:16 24/07/2010)
Chào KennyRất vui vi được học tập rất nhiều kiến thức bổ ích từ trang web của bạn.
Hầu hết các ý kiến đều xin thêm ví dụ và có lời giải cụ thể.
Mong bạn xem xét và tiếp nhận các ý kiến trên.
Thân mến!
Reply
faithful (20:08 18/08/2010)
cảm ơn rất nhiều.nhưng có lỗi gì đó mình không chạy được?mình đã tạo 2 file html và dùng trang index.php gọi chúng ra nhưng không được
Reply
Ngô Văn Hưng (22:20 12/09/2010)
Nên viết sâu hơn về cách gọi và sử dụng hàm tự tạo. Bài tập cần sát với nội dung lý thuyết để học viên có thể áp dụng cho nhuần nhuyễn.Reply
phamduykhanh (14:04 26/09/2010)
đây là ý bài 2 nhưng mình chỉ tự chế để các bạn tham khảo bao nhiêu được thì được:<form action="vidu.php" method="post">CÁC MÓN HÀNG BAN CHON:
<input type="radio" name="hang" value="1" />Ti vi
<input type="radio" name="hang" value="2" />dau dia
<input type="radio" name="hang" value="3" />may nghe nhac
<input type="radio" name="hang" value="4" />may lanh
<input type="radio" name="hang" value="5" />đien thoai</br>
BAN CHON GIA MUON MUA TUY THICH:
<input type="radio" name="gia" value="6" />500.000
<input type="radio" name="gia" value="7" />1.000.000
<input type="radio" name="gia" value="8" />1.500.000
<input type="radio" name="gia" value="9" />2.000.000
<input type="radio" name="gia" value="10" />2.500.000</br>
Nhap so luong<input type="text" name="sl" value="<?PHP echo $soluong; ?>"/></br>
<input type="submit" name="submit" value="tinh" />
</form>
<?php
$chonhang=$_POST['hang'];
if($chonhang!=NULL)
{
echo "BAN CHON HANG: ";
switch($chonhang)
{
case '1': echo " tivi "; break;
case '2': echo " dau dia "; break;
case '3': echo " may nghe nhac "; break;
case '4': echo " may lanh "; break;
case '5': echo " dien thoai "; break;
}
}else{
echo "HAY CHON HANG";
}
?>
</br>
<?PHP
$gia=$_POST['gia'];
if($gia!=NULL)
{
echo "BAN CHON GIA: ";
switch($gia)
{
case '6': echo " 500.000 "; break;
case '7': echo " 1.000.000 "; break;
case '8': echo " 1.500.000 "; break;
case '9': echo " 2.000.000 "; break;
case '10': echo " 2.500.000 "; break;
}
}else{
echo "HAY CHO GIA";
}
?>
<br />
<?PHP
$soluong=$_POST['sl'];
if($soluong==NULL)
{
echo "CHON SO LUONG";
}else{
echo "BAN MUA VOI SO LUONG: ";
echo $soluong."<br>";
echo "TIEN BAN TRA LA:";
$gia=$_POST['gia'];
switch($gia)
{
case '6': echo $soluong*500000; break;
case '7': echo $soluong*1000000; break;
case '8': echo $soluong*1500000; break;
case '9': echo $soluong*2000000; break;
case '10': echo $soluong*2500000; break;
}
}
?>
<br />
Reply
pham duy khanh (07:54 29/09/2010)
da upload bai len ma sao ko thay .trang web domReply
tanmy (14:35 03/11/2010)
mình thích cách viết bài lý thuyết của bạn , nó gọn , cơ bản và dễ hiểu . Tuy nhiên , phần bài tập , nếu chưa có đáp án , mình nghĩ bạn có thể gợi ý là dùng gì gì đó để làm bài tập như vậy trang web sẽ hấp dẫn hơn .Reply
hoangvantuyen (21:09 27/03/2011)
anh admin ơi ra bài tập anh cố gắng có bài giải hay gợi ý nhe.cảm ơn trang rất bổ íchReply
shirokenshin (17:07 08/05/2011)
ý tưởng bạn Phạm duy khánh cug hay.cám ơn tinh thần đã chia sẻ.^^Reply
nguyễn văn hoàn (20:48 29/05/2011)
có nhưng bài thế này giúp bon em nhiều lắm thank các đại caReply
vĩnh nghi (14:44 21/07/2011)
hướng dẫn thì lơ tơ mơ, cho ví dụ thì nhiều cái sai code không RUN được, còn bài tập thì cho tuốt ở trên trời ấy. Tóm lại là website này RẤT TỆReply
Phan văn Quân (12:11 27/07/2011)
bài tập này rất thực tế và rõ ràng.A ơi,em muốn biết cách tào và sử dụng trang template trong php.?
Reply
Dam le tu (11:38 07/09/2011)
xin tac gia cho dap an di ah!Reply
Ray (21:19 27/11/2011)
Bài 2 đây. Mình fix lại bài của bạn "phamduykhanh", các bạn tham khảo và góp ý kiến giúp t nhé, tks//code trong file "banhang.php"
<h1><center><font color = 'blue'> Demo mua hang</center></font> </h1>
<form action="trangxuly.php" method="post">
<font color = brown ><strong>Cac san pham: </strong></font><br>
<table boder = 1 width = 700 bordercolor="#0066FF">
<tr>
<td><input type="radio" name="sp" value="Asus1" />Asus Lamborghini(30tr)</td>
<td><input type="radio" name="sp" value="Toshiba" />Toshiba Satellite (27tr)
<td><input type="radio" name="sp" value="Asus2" />Asus NX90(70tr)</td>
<td><input type="radio" name="sp" value="Asus3" />Asus G51J(40tr)</td>
</tr>
<tr>
<td><input type="radio" name="sp" value="Apple1" />Macbook Pro(38tr) </br></td>
<td><input type="radio" name="sp" value="Apple2" />Ipad 2 32G(35tr)</td>
<td><input type="radio" name="sp" value="Sony" />Sony Vaio Z(23tr)</td>
<td><input type="radio" name="sp" value="Dell1" />Dell Alienware(45tr)</td>
<td><input type="radio" name="sp" value="Asus4" />Asus UX90 (19tr)</td>
<td><input type="radio" name="sp" value="Dell2" />Dell Adamo (32tr)</br></td>
</tr>
</table>
Nhap so luong<input type="text" name="sl"/></br>
<input type="submit" name="submit" value="Tinh" />
</form>
//code trong file "trangxuly.php"
<?php
$chonhang=$_POST['sp'];
if($chonhang!=NULL)
{
echo "Ban chon: ";
switch($chonhang)
{
case 'Asus1': echo "Asus Lamborghini "; break;
case 'Asus2': echo "Asus NX90 "; break;
case 'Asus3': echo "Asus G51J"; break;
case 'Asus4': echo "Asus UX90"; break;
case 'Toshiba': echo "Toshiba Satellite"; break;
case 'Dell1': echo "Dell Alienware"; break;
case 'Dell2': echo "Dell Adamo"; break;
case 'Sony': echo "Sony Vaio Z"; break;
case 'Apple1': echo "Macbook Pro"; break;
case 'Apple2': echo "Ipad 2 32G"; break;
}
}else{
echo "Xin vui long chon san pham";
}
?>
</br>
<?PHP
$gia=$_POST['sp'];
if($gia!=NULL)
{
switch($gia)
{
case 'Asus1': echo "30.000.000d "; break;
case 'Asus2': echo "70.000.000d"; break;
case 'Asus3': echo "40.000.000d"; break;
case 'Asus4': echo "19.000.000d"; break;
case 'Toshiba': echo "27.000.000d"; break;
case 'Dell1': echo "45.000.000d"; break;
case 'Dell2': echo "32.000.000d"; break;
case 'Sony': echo "23.000.000d"; break;
case 'Apple1': echo "38.000.000d"; break;
case 'Apple2': echo "35.000.000d"; break;
}
}else{
echo "Ban chua chon sp";
}
?>
<br />
<?PHP
$soluong=$_POST['sl'];
if($soluong==NULL)
{
echo "Ban chua chon so luong sp";
}else{
echo "So luong: ";
echo $soluong."<br>";
$gia=$_POST['sp'];
echo "Tien ban phai tra: ";
switch($gia)
{
case 'Asus1': echo $soluong*30000000; break;
case 'Asus2': echo $soluong*700000000; break;
case 'Asus3': echo $soluong*400000000; break;
case 'Asus4': echo $soluong*190000000; break;
case 'Toshiba': echo $soluong*270000000; break;
case 'Dell1': echo $soluong*450000000; break;
case 'Dell2': echo $soluong*320000000; break;
case 'Sony': echo $soluong*230000000; break;
case 'Apple1': echo $soluong*380000000; break;
case 'Apple2': echo $soluong*350000000; break;
}
}
?>
<br />
Reply
Phan Văn Luận (17:45 05/12/2011)
Chào mọi người.Tôi đang xây dựng web đa ngôn ngữ không dùng database, tôi đã xây dựng được giao diện : www.pnco.co.cc và tôi đang phát triển nó cho cả nội dung ( dành cho web không cần thay đổi nội dung nhiều ), nhưng tôi lại gặp phải vấn đề nên rấ cần sự trợ giúp của mọi người. Đây là nội dung file ngôn ngữ của tôi:
File "lang.php"
<?php
$language = language();
require_once(''.$language.'.php');
require("languages.php");
setcookie("language", $language);
if (!isset($_COOKIE['language']))
{
}
function language()
{
//
$default_language = 'vn';
//
if(!empty($_GET['language']))
{
return $_GET['language'];
}
elseif(!empty($_COOKIE['language']))
{
return $_COOKIE['language'];
}
return $default_language;
}
?>
File " vn.php"
<?
// Navigation-------------------------------------------
$TEXT['1']="Giới Thiệu";
$TEXT['2']="Máy Mới";
$TEXT['3']="Máy Qua Sử Dụng";
$TEXT['4']="Phụ Tùng";
$TEXT['5']="Dịch Vụ";
$TEXT['6']="E-Catalog";
$TEXT['7']="Liên Hệ";
// side_bar---------------------------------------------
$TEXT['p1']="Máy Cưa";
$TEXT['p2']="Máy Tiện";
$TEXT['p3']="Máy Phay";
$TEXT['p4']="Máy Mài";
$TEXT['p5']="Máy Khoan";
$TEXT['p6']="Máy Cắt Tole";
$TEXT['p7']="Máy Chấn Góc";
$TEXT['p8']="Máy Hàn";
// title_left----------------------------------------------
$TEXT['tl-1']="Danh Mục Sản Phẩm";
$TEXT['tl-2']="Dòng Sản Phẩm Mới";
$TEXT['tl-3']="Máy Qua Sử Dụng";
$TEXT['tl-4']="Dụng Cụ & Linh Kiện";
$TEXT['tl-5']="Sản Phẩm Bán Chạy";
// title_right--------------------------------------------
$TEXT['tr-1']="Hỗ Trợ Khách Hàng";
$TEXT['tr-2']="Đường Dây Nóng";
$TEXT['tr-3']="Tư Vấn Sản Phẩm";
$TEXT['tr-4']="Dịch Vụ Kế Toán";
$TEXT['tr-5']="Dịch Vụ Kỷ Thuật";
$TEXT['tr-6']="Banner Khách Hàng";
// Content----------------------------------------------
$CONTENT['title']="Thiết Bị Công Nghiệp Phan Nguyễn";
$CONTENT['welcome']="";
$CONTENT['wow']="tex";
?>
File " en.php" tương tự như file vn nhưng nó bằng tiếng anh.
Bây giờ tôi muốn làm cả phần nội dung nhưng chưa biết làm cách nào. Ý tưởng của tôi như sau :
$CONTENT['welcome']="nội dung";
bằng cách nào đó phần " nội dung " có thể trỏ tớ một file vd : model.php chẳng hạn ( dạng include(file/model.php).
Nếu làm đc như vậy thì tôi có thể thây đổi đc cả phần nội dung.
Rất mong mọi người giúp đở.
Reply
Hồ Quang Thạnh (11:32 14/12/2011)
<html><head>
<title> Function </title>
</head>
<body>
<?php
// Hàm tạo danh sách các sản phẩm có mã //sản phẩm lần lượt là 1,2,3... , tên và đơn //giá tương ứng được lưu vào trong mảng đa //chiều
function input(){
$a=array();
$a[1]["name"]="A";
$a[1]["cost"]=1000;
$a[2]["name"]="B";
$a[2]["cost"]=2000;
$a[3]["name"]="C";
$a[3]["cost"]=3000;
return $a;
}
?>
// Hàm kiểm tra sản phẩm khách mua có //trong danh mục sản phẩm hay không ?
<?php
function Search($value,$a){
$check=false;
while($element=each($a)){
if($element['key']==$value){
$check=true;
}
}
return $check;
}
?>
<?php
$b=input();
echo "<font color=blue size=12>"."DANH SACH SAN PHAM"."<font>"."<br>";
echo " "."<font color=red size=8>"."|Ma SP |"."<font>";
echo "<font>"." Ten SP |"."<font>";
echo "<font>"." Don Gia |"."<font>";
foreach($b as $key=>$value){
echo "<br>";
echo " "."$key"." ";
echo $value["name"]." ";
echo $value["cost"];
}
?>
<?php
if(!$_POST["buy"])
{
?>
<br><br> <font color="black" size="5">Vui long nhap Ma va So luong san pham ban muon mua<font color="black" size="5">
<form action="<?=$_SERVER[PHP_SELF]?>" method="post">
<br> Ma sp <input type="text" name="masp" size="5" value="">
<br> So luong <input type="text" name="soluong" size="2" value="">
<input type="submit" name="buy" value="Buy">
</form>
<?php
}
else{
$masp=$_POST["masp"];
$sl=$_POST["soluong"];
$found=Search($masp,$b);
if($found && $sl !=0){
echo "<br><font color=black size=5>"."Ban da mua san pham ". $b[$masp][name]." voi so luong la ".$sl."<font>";
echo "<br>Tong so tien cua san pham ban da mua la ".$b[$masp][cost]*$sl;
}
else{
echo "<br> <font color=black size=5>"."Mua hang khong thanh cong !"."<font>";
echo "<br> <font color=black size=5>"."Ban vui long kiem tra lai Ma va So luong san pham can mua !"."<font>";
}
}
?>
</body>
</html>
Reply
Hồ Quang Thạnh (14:02 14/12/2011)
Bài này mình tối ưu hơn bài trước là danh sách sản phẩm được đọc từ file. Ở đây mình tận dụng bài trước và chỉ cần chỉnh lại hàm input() tí xíu là xong.<html>
<head>
<title> Function </title>
</head>
<body>
/* Ham tao danh muc san pham tu file
dssp.txt co dinh dang sau:
1:A:1000
2:B:2000
3:C:3000
4:D:4000
cot 1 la ma san pham
cot 2 la ten san pham
cot 3 la don gia
*/
<?php
function input(){
$file="dssp.txt";
if(file_exists($file)){
$data=file($file);
foreach($data as $line){
$str=explode(":",$line);
$masp=$str[0];
$a[$masp]['name']=$str[1];
$a[$masp]['cost']=$str[2];
}
}
else{
die("Kiem tra lai duong dan file");
}
return $a;
}
?>
<?php
function Search($value,$a){
$check=false;
while($element=each($a)){
if($element['key']==$value){
$check=true;
}
}
return $check;
}
?>
<?php
$b=input();
echo "<font color=blue size=12>"."DANH SACH SAN PHAM"."<font>"."<br>";
echo " "."<font color=red size=8>"."|Ma SP |"."<font>";
echo "<font>"." Ten SP |"."<font>";
echo "<font>"." Don Gia |"."<font>";
foreach($b as $key=>$value){
echo "<br>";
echo " "."$key"." ";
echo $value["name"]." ";
echo $value["cost"];
}
?>
<?php
if(!$_POST["buy"])
{
?>
<br><br> <font color="black" size="5">Vui long nhap Ma va So luong san pham ban muon mua<font color="black" size="5">
<form action="<?=$_SERVER[PHP_SELF]?>" method="post">
<br> Ma sp <input type="text" name="masp" size="5" value="">
<br> So luong <input type="text" name="soluong" size="2" value="">
<input type="submit" name="buy" value="Buy">
</form>
<?php
}
else{
$masp=$_POST["masp"];
$sl=$_POST["soluong"];
$found=Search($masp,$b);
if($found && $sl !=0){
// echo "<br>".$b[$masp][cost];
// $thantien=$b[$masp]["cost"]*$sl;
echo $thanhtien;
echo "<br><font color=black size=5>"."Ban da mua san pham ". $b[$masp][name]." voi so luong la ".$sl."<font>";
echo "<br>Tong so tien cua san pham ban da mua la ". round($b[$masp]["cost"]*$sl + 10*($b[$masp]["cost"]*$sl)/100) .". Da bao gom VAT";
}
else{
echo "<br> <font color=black size=5>"."Mua hang khong thanh cong !"."<font>";
echo "<br> <font color=black size=5>"."Ban vui long kiem tra lai Ma va So luong san pham can mua !"."<font>";
}
}
?>
</body>
</html>
Reply