MỤC LỤC
LỜI NÓI ĐẦU
Ngày nay với sự phát triển của khoa học kỹ thuật, công nghệ máy tính đã đạt được
nhiều thành tựu to lớn. Máy tính đã và đang được sử dụng rộng rãi trong các công việc mà
trước đó con người phải sử dụng bàn tay của mình với hình thức lao động thủ công năng
suất thấp và chất lượng công việc không cao. Với sự ra đời và phát triển không ngừng của
công nghệ, máy tính hiện nay đã đáp ứng được một phần nhu cầu trong cuộc sống, sản
xuất, nghiên cứu khoa học và làm thay đổi bộ mặt xã hội.
Trong thời đại bùng nổ của cuộc cách mạng công nghệ thông tin trên toàn cầu, khi
nói đến Internet, người ta nghĩ ngay tới Web. Với một vai trò quan trọng là đảm bảo chia sẻ
thông tin chung cho mọi người, Web hiện nay còn chứa rất nhiều những giải pháp, công
nghệ để đảm nhận được vai trò to lớn của nó trong đời sống, kinh tế, văn hóa, xã hội. Để
có một website “ Thương mại điện tử ” được ứng dụng, đáp ứng được nhu cầu công việc
đặt ra thì người làm tin học phải biết phân tích thiết kế hệ thống làm việc của chương trình,
để từ đó xây dựng nên một website ứng dụng quản lý chương trình đó bằng ngôn ngữ lập
trình.
Công nghệ thông tin và ứng dụng có vai trò rất quan trọng trong việc cung cấp
thông tin, trao đổi thông tin, giao dịch thương mại... qua hệ thống Website trên Internet.
Mọi người có thể tìm kiếm thông tin về mọi lĩnh vực trong cuộc sống : khoa học, giáo dục,
dịch vụ, giải trí, du lịch, .... phục vụ và đáp ứng nhu cầu của mọi người. Vì vậy xây dựng
Website là vô cùng cần thiết để đáp ứng nhu cầu của người sử dụng .
Bắt nguồn từ những ý tưởng, từ nhu cầu thực tế trên em chọn đề tài:
“ Nghiên cứu xây dựng một số chức năng của wesbsite bán hàng trên Internet dựa trên
ngôn ngữ lập trình PHP ”
Page 1
Sau khi hoàn thành trang Web. Em xin được viết báo cáo trình bày bài thực tập
chuyên nghành này. Bài thực tập bao gồm thành phần cơ bản sau :
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG
CHƯƠNG 3: HỆ THỐNG BÁN HÀNG TRỰC TUYẾN
Do còn thiếu kinh nghiệm thực tế nên em không tránh khỏi những vấn đề sai sót.
Em rất mong nhận được sự chỉ bảo tận tình của thày cô để em có thể hoàn thiện website,
để website có giá trị thực tiễn trong việc ứng dụng nó vào thực tế.
Em xin gửi lời cảm ơn chân thành đến cô Nguyễn Thu Hằng và các thày cô đã chỉ
bảo tận tình để em có được những kiến thức hữu ích trong quá trình thực tập lần này !
Em xin chân thành cảm ơn !
Page 2
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 TỔNG QUAN VỀ INTERNET VÀ THƯƠNG MẠI ĐIỆN TỬ
1.1.1 TỔNG QUAN VỀ INTERNET
1.1.1.1 Internet và xuất xứ của nó
Internet là một hệ thống thông tin toàn cầu có thể được truy nhập công cộng gồm các
mạng máy tính được liên kết với nhau. Hệ thống này bao gồm hàng ngàn mạng máy tính
nhỏ hơn của các doanh nghiệp, của các viện nghiên cứu và các trường đại học, của người
dùng cá nhân, và các chính phủ trên toàn cầu.
Tiền thân của mạng Internet ngày nay là mạng ARPANET. Tới năm 1995, Internet đã
trở thành một mạng lớn nhất trên thế giới, mạng của các mạng, xuất hiện trong mọi lĩnh
vực thương mại, chính trị, quân sự, nghiên cứu, giáo dục, văn hoá, xã hội... Cũng từ đó,
các dịch vụ trên Internet không ngừng phát triển tạo ra cho nhân loại một thời kỳ mới: kỷ
nguyên thương mại điện tử trên Internet.
1.1.1.2 Cách thức truyền thông trên Internet
Trong những năm 60 và 70, nhiều công nghệ mạng máy tính đã ra đời. Internet
được thiết kế để liên kết các kiểu mạng khác nhau và cho phép thông tin được lưu thông
một cách tự do giữa những người sử dụng mà không cần biết họ sử dụng loại máy nào và
kiểu mạng gì
Một số mạng máy tính bao gồm một máy tính trung tâm (còn gọi là máy chủ) và
nhiều máy trạm khác nối với nó. Các mạng khác kể cả Internet có quy mô lớn bao gồm
Page 3
nhiều máy chủ cho phép bất kỳ một mạng máy tính nào trong mạng đều có thể kết nối với
các máy khác để trao đổi thông tin. Một máy tính khi được kết nối với Internet sẽ là một
trong số hàng chục triệu thành viên của mạng khổng lồ này. Vì vậy Internet là mạng máy
tính lớn nhất thế giới hay nó là mạng của các mạng.
1.1.1.3 Các dịch vụ trên Internet
Thư điện tử ( E – mail ) : Trao đổi thông tin giữa cá nhân với cá nhân, cá nhân với
tổ chức và các tổ chức với nhau. Nó cho phép gửi nội dung thông tin tới từng địa chỉ
hoặc đến tất cả các địa chỉ theo danh sách. Lợi ích chính của dịch vụ thư điện tử là
thông tin gửi nhanh và rẻ.
WWW ( World Wide Web ) : Là dịch vụ mà ngưởi dùng quan tâm nhất hiên nay.
Web là một công cụ, một công cụ của Internet, nó chứa thông tin bao gồm : âm thanh,
hình ảnh, văn bản, thậm chí cả video được kết hợp với nhau.
Dịch vụ truyền file ( FTP – File Transfer Protocol ) : dịch vụ dùng để trao đổi các
tệp tin từ máy chủ xuống các máy cá nhân và ngược lại.
Gropher : dịch vụ hoạt động như viện Menu đủ loại. Thông tin hệ thống Menu phân
cấp giúp người sử dụng từng bước xác định được những thông tin cần thiết để đi được
tới vị trí cần đến.
Telnet : dịch vụ cho phép truy cập tới Server được xác định rõ như một Telnet Site
tìm kiếm Server người dùng có thể thấy được dịch vụ vô giá khi tìm kiếm các thông tin
trong thư viện và các thông tin lưu trữ
1.1.2 THƯƠNG MẠI ĐIỆN TỬ
1.1.2.1 Thương mại điện tử là gì ?
Thương mại điện tử ( E – Commerce ) là hình thái hoạt động kinh doanh bằng các
phương pháp điện tử; là việc trao đổi “ thông tin ” kinh doanh thông qua các phương tiện
công nghệ điện tử
Theo khái niệm này, thương mại điện tử không chỉ là bán hàng trên mạng hay bán
hàng trên Internet mà là hình thái hoạt động kinh doanh bằng các phương pháp điện tử.
Hoạt động kinh doanh bao gồm tất cả các hoạt động trong kinh doanh như : giao dịch, mua
bán, thanh toán, đặt hàng, quảng cáo, và kể cả giao hàng. Các phương pháp điện tử ở đây
Page 4
không chỉ có Internet mà bao gồm việc sử dụng các phương tiện công nghệ điện tử như :
điện thoại, máy fax, truyền hình, mạng máy tính ( trong đó có Internet ). Thương mại điện
tử cũng bao hàm cả việc trao đổi thông tin kinh doanh thông qua các phương tiện công
nghệ điện tử. Thông tin ở đây không chỉ là những số liệu hay văn bản, tin tức mà nó gồm
cả hình ảnh, âm thanh và phim video.
1.1.2.2 Thương mại điện tử và tầm quan trọng của nó
Hiện nay nhờ vào sự phát triển của các phương tiện truyền thông đặc biệt là sự phát
triển của tin học đã tạo điều kiện cho mọi người có thể giao tiếp với nhau 1 cách nhanh
chóng và dễ dàng hơn thông qua các dịch vụ của Internet. Vì vậy thương mại điện tử thông
qua Internet đang phát triển trong điều kiện vô cùng thuận lợi. Nó trở nên phổ biến và trở
thành công cụ mạnh mẽ để bán hàng và quảng bá sản phẩm của các doanh nghiệp. Thông
qua đó khách hàng có thể lựa chọn, so sánh sản phẩm phù hợp về chủng loại, dịch vụ, giá
cả, chất lượng và phương thức giao hàng cho khách hàng.
Thương mại điện tử không chỉ mở ra những cơ hội kinh doanh mới, những sản phẩn
và dịch vụ mới, nghành nghề kinh doanh mới mà bản thân nó thực sự là một phương thức
kinh doanh mới : “phương thức kinh doanh điện tử”. Thương mại điện tử chuyển hóa các
chức năng kinh doanh, từ nghiên cứu thị trường và sản xuất sản phẩm đến bán hàng, dịch
vụ sau bán hàng từ phương thức kinh doanh truyền thống đến phương thức kinh doanh
điện tử
1.1.2.3 Thực tế thương mại điện tử ở Việt Nam
Việt Nam là một nước có nền CNTT kém phát triển so với thế giới nói chung và khu
vực nói riêng. Ngày 19/11/1997 (ngày Internet Việt Nam), Internet chính thức được đưa
vào sử dụng tại Việt Nam, xu hướng ứng dụng Thương mại điện tử đã bắt đầu. Con đường
tiếp cận Thương mại điện tử qua 3 giai đoạn: chuẩn bị, chấp nhận và ứng dụng, và Việt
Nam đang ở bước đầu tiên của giai đoạn thứ nhất.
Khó khăn:
Các trở ngại có tính Công nghệ như : thiếu một cơ sở hạ tầng và một môi trường
công nghệ thích hợp như : giá sử dụng; khả năng bảo mật; nền CNTT kém phát triển và
thiếu cán bộ kỹ thuật.
Page 5
Các trở ngại có tính Xã hội: thiếu một môi trường xã hội thích hợp, thiếu hiểu biết
từ lãnh đạo đến nhân viên; thiếu hiểu biết từ khách hàng đến bạn hàng.
Việt Nam là đất nước tham gia sau và bắt đầu từ đầu nên ngoài vấp phải những khó
khăn chung kể trên thì còn rất nhiều khó khăn riêng. Theo đánh giá thì có 3 khó khăn chính
là:
- Cơ sở hạ tầng thông tin cần cải thiện ngay, cần có thời gian hàng năm và lượng vốn
đầu tư lớn.
- Hệ thống dịch vụ tài chính chưa áp dụng hệ thống thanh toán thẻ. Đây là trở ngại
và là khó khăn lớn nhất.
- Cần nâng cao nhận thức của người Việt Nam về Thương mại điện tử thì mới có thể
triển khai được.
Thuận lợi:
- Theo các dự báo về một nền kinh tế kỹ thuật số của thế kỷ 21 thì Thương mại điện
tử là một trong những yếu tố then chốt. Không liên quan đến những trở ngạivừa
nêu, khi phát triển Thương mại điện tử, Việt Nam cũng được thừa hưởng tất cả các
thuận lợi này.
1.2 PHP VÀ VIỆC XÂY DỰNG CÁC ỨNG DỤNG TRÊN WEB
1.2.1 GIỚI THIỆU VÀ SỬ DỤNG PHP
1.2.1.1 Lịch sử ra đời của PHP
PHP đã được nghĩ đến trong khoảng cuối năm 1994 bởi Rasmus Lerdorf. Cuối năm
1996 PHP/FI đã được dùng trên ít nhất 15000 trang web trên khắp thế giới. Khoảng giữa
năm 1997 con số này đã tăng lên trên 50000 trang web.
Ngày nay, PHP 3 hoặc PHP 4 hiện tại chuyên chở một số lượng các sản phẩm
thương mại như web server Red Hat’s Stronghold. Ngày nay, theo ước lượng thì PHP được
dùng trong khoảng 5.1 triệu trang trên toàn thế giới và hơn cả IIS server của Microsoft
( khoảng 5.03 triệu trang).
1.2.1.2 Sử dụng PHP
Page 6
Để sử dụng được PHP, trước tiên bạn phải cấu hình PHP trên Server có cài đặt IIS
( Internet Information Server ) hay Persional Web Server. Tuy nhiên trong trường hợp ứng
dụng mang tính thực tiễn, bạn nên sử dụng Server có cài IIS.
+ <? echo ("this is the simplest, an SGML processing instruction\n"); ?>
+ <?php echo("if you want to XML documents, do like this\n"); ?>
+ echo ("some editors (like FrontPage) don't like processing
instructions");</script>
+ <% echo ("You may optionally use ASP-style tags"); %> <%= $variable; # This
is a shortcut for "<%echo .." %>
1.2.2 NGÔN NGỮ PHP
1.2.2.1 Các kiểu dữ liệu
a. Số nguyên
Được khai báo và sử dụng giống C++ :
Ví dụ : $a = 1234;
$a = -123;
$a = 0123;
$a = 0x12;
b. Số thực
Ví dụ : $a = 1.234; $a = 1.2e3;
Chú ý : khi sử dụng số thực để tính toán, có thể sẽ làm mất giá trị của nó. Vì vậy,
nên sử dụng các hàm toán học trong thư viện chuẩn để tính toán.
c. Xâu
Page 7
Có 2 cách để xác định 1 xâu : Đặt giữa 2 dấu ngoặc kép (“”) hoặc giữa 2 dấu ngoặc
đợn (‘.
Chú ý : các biến giá trị sẽ không được khai triển trong xâu giữa 2 dấu ngoặc đơn.
d. Mảng
Mảng thực chất là gồm 2 bảng : bảng chỉ số và bảng liên kết. Mảng là biến dữ liệu lưu trữ
tập hợp dữ liệu gồm nhiều phần tử, mỗi phần tử chứa một giá trị như text, number...hay
một mảng khác.
Mỗi phần tử trong mảng đều có một chỉ mục chính và vị trí của phần tử đó trong
mảng. Phần tử đầu tiên trong mảng có chỉ mục là 0. Có thể duyệt trên phần tử mảng bằng
các phát biểu vòng lặp
Mảng 1 chiều :
Có thể dùng hàm : list() hoặc array() hoặc liệt kê các giá trị của từng phần tử trong
mảng để tạo mảng. Có thể thêm các giá trị vào mảng để tạo thành 1 mảng. Có thể dùng các
hàm asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), and uksort() để sắp xếp mảng.
Tùy thuộc vào sắp xếp theo kiểu gì.
Mảng nhiều chiều:
Mảng nhiều chiều được biết đến như một bảng dữ liệu,ma trận lưới hai chiều, ba
chiều. Mỗi phần tử trong mảng có thể là một mảng con. Để có thể khai báo mảng hai chiều
ta có thể sử dụng cú pháp :
$products = array(
Array( “tir”,”tires”,100),
Page 8
Array(“cor”,”concord”,1000),
Array(“boe”,”boeing”,5000),
Để gán giá trị vào mảng hai chiều, ta cũng có thể thực hiện gán giá trị cho từng
phần tử ứng với hàng thứ i và cột thứ j như sau :
$products[0][0] = “A”;
$products[0][1] = “b”;
1.2.2.2 Biến và các giá trị
PHP quy định một biến được biểu diễn bắt đầu bằng dấu $, sau đó là một chữ cái
hoặc dấu gạch dưới.
a. Một số biến đã được tạo sẵn
argv : Mảng tham số truyền cho script. Khi đoạn script chạy bằng dòng lệnh, tham
số này sẽ được dùng giống như C để truy nhập các tham số trên dòng lệnh.
argc : số các tham số được truyền. Dùng với argv;
PHP_SELF : tên của đoạn mã script đang thực hiện. Nếu PHP đang được chạy từ
dòng lệnh thì tham số này không có giá trị.
HTTP_COOKIE_VARS: một mảng các giá trị được truyền tới script hiện tại bằng
HTTP cookie. Chỉ có tác dụng nếu "track_vars" trong cấu hình được đặt hoặc chỉ dẫn <?
php_track_vars?>
HTTP_GET_VARS: Mảng các giá trị truyền tới script thông qua phương thức HTTP
GET. Chỉ có tác dụng nếu "track_vars" trong cấu hình được đặt hoặc chỉ dẫn <?
php_track_vars?>
b. Phạm vi giá trị
Page 9
PHP coi 1 biến có một giới hạn. Để xác định một biến toàn cục (global) có tác dụng
trong một hàm, ta cần khai báo lại. Nếu không giá trị của biến sẽ được coi như là cục bộ
trong hàm.
Ví dụ: $a = 1;
$b = 2;
Function Sum () {
global $a, $b;
$b = $a + $b;}
Sum ();
echo $b;
Khi có khai báo global ở trên, $a và $b được cho biết đó là những biến toàn cục.
Nếu không có khai báo global, $a và $b chỉ được coi là các biến bên trong hàm Sum().
Điều này khác với C. Một cách khác để dùng biến toàn cục trong 1 hàm là ta dùng mảng
$GLOBAL của PHP
Ví Dụ (ở trên sẽ có thể viết như sau) :
$a = 1;
$b = 2;
Function Sum () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];}
Sum ();
echo $b;
Một chú ý khác là khai báo static. Với khai báo này bên trong một hàm với 1 biến
cục bộ, giá trị của biến cục bộ đó sẽ không bị mất đi khi ra khỏi hàm.
Page
10
Ví dụ:
Function Test () {
static $a = 0;
echo $a;
$a++;}
Với khai báo như trên, $a sẽ không mất đi giá trị sau khi thực hiện lời gọi hàm Test() mà $a
sẽ được tăng lên 1 sau mỗi lần gọi hàm Test().
c. Tên biến
Một biến có thể gắn với 1 cái tên .
Ví dụ:
$a = "hello";
$$a = "world";
==> $hello = "world"
và echo "$a ${$a}";
<==> echo "$a $hello"; Kết quả ra sẽ là : hello world.
Chú ý : bạn có thể gặp phải trường hợp không rõ ràng khi sử dụng cách này với
mảng . Ví dụ: $$a[1] sẽ hiểu là bạn muốn dùng $a[1] như 1 biến hay dùng $$a như 1 biến
với [1] là chỉ số. Để tránh trường hợp này , cần có sự phân biệt rõ bằng dấu { }.
Ví dụ: ${$a[1]} hoặc ${$a}[1].
d. Các giá trị bên ngoài phạm vi PHP
HTML Form : khi 1 form gắn với 1 file php qua phương thức POST
Page
11
Ví dụ: <form action="foo.php3" method="post">
Name: <input type="text" name="name">
<input type="submit">
</form>
PHP sẽ tạo 1 biến $name bao gồm mọi giá trị trong trường Name của Form. PHP có
thể hiểu được một mảng một chiều gồm các giá trị trong một form. Vì vậy, có thể nhóm
những giá trị liên quan lại với nhau hoặc sử dụng đặc tính này để nhận các giá trị từ một
đầu vào tuỳ chọn.(multi select input). Khi tính chất track_vars được đặt trong cấu hình
hoặc có chỉ dẫn <?php_track_vars?>. các giá trị được submit được lấy ra qua phương thức
GET và POST có thể lấy từ hai mảng toàn cục $HTTP_POST_VARS và
$HTTP_GET_VARS
1.2.2.3 Một số chú ý
a. IMAGE SUBMIT:
Khi dùng một image để thực hiện submit, có thể dùng tag như sau:
<input type=image src="image.gif" name="sub">
Khi người dùng click chuột trên ảnh, form tương ứng sẽ được gửi tới server kèm
theo hai giá trị thêm vào : sub_x và sub_y. Những biến này sẽ lưu giữ toạ độ mà người
dùng đã click chuột trên ảnh. Người lập trình có kinh nghiệm sẽ thấy rằng trên thực tế,
trình duyệt gửi các giá trị có chu kỳ thời gian nhưng PHP đã tạo cảm giãc gần như việc gửi
các giá trị đó là liên tục.
b. HTTP Cookies :
PHP hỗ trỡ HTTP cookies theo định dạng của Netscape. Cookies file lưu giữ thông
tin của các trình duyệt từ xa và qua đó có thể theo dõi hay nhận biết người sử dụng. Có thể
dùng Cookies bằng hàm SetCookie(). Hàm này cần được gọi trước khi thông tin được gửi
tới trình duyệt. Bất kỳ cookie nào gửi tới bạn từ máy khách (client) sẽ tự động chuyển
Page
12
thành dữ liệu của phương thức GET và POST.Nếu muốn có nhiều giá trị trong một cookie,
chỉ cần thêm vào dấu [ ] với tên của cookie.
Ví dụ: SetCookie ("MyCookie[]", "Testing", time()+3600);
Chú ý rằng cookie sẽ thay thế cho cookie cùng tên, trừ trường hợp khác đường dẫn
hoặc miền.
c. BIẾN MÔI TRƯỜNG:
PHP tự động tạo biến cho các biến môi trường như một biến bình thường của PHP.
Ví dụ:
echo $HOME; /* Shows the HOME environment variable, if set. */
Vì thông tin tới qua các phương thức GET, POST , Cookie cũng tự đông tạo các
biến PHP, thỉnh thoảng bạn nên đọc 1 biến từ môi trường để chắc chắn rằng bạn có đúng
version. Hàm getenv() và putenv() giúp bạn đọc và ghi với các biến môi trường.
d. DẤU CHẤM TRONG TÊN BIẾN
Bình thường, PHP không thay đổi tên biến khi biến đó được truyền vào đoạn script.
Tuy nhiên, nên chú ý rằng dấu chấm (.) không phải là một ký hiệu hợp lệ trong tên biến đối
với PHP. Vì vậy, PHP sẽ tự động thay thế các dấu chấm bằng dấu gạch dưới.(_)
1.2.2.4 Biểu thức
Biểu thức là một phần quan trọng trong PHP. Phần lớn mọi thứ chúng ta viết
đềuđược coi như một biểu thức. Điều này có nghĩa là mọi thứ đều có một giá trị. Một dạng
cơ bản nhất của biểu thức bao gồm các biến và hằng số. PHP hỗ trợ 3 kiểu giá trị cơ bản
nhất: số nguyên, số thực, và xâu. Ngoài ra còn có mảng và đối tượng. Mỗi kiểu giá trị này
có thẻ gán cho các biến hay làm giá trị trả ra của các hàm. Có thể thao tác với các biến
trong PHP giống như với trong C.
Ví dụ:
$b = $a = 5
Page
13
$c = $a++; /*
$e = $d = ++$b;
1.2.2.5 Các câu lệnh
a. If ....else....else if
if (điều kiện) { do something; }
elseif ( điều kiện ) { do something;}
else { do something;}
b. Vòng lặp
while ( DK) { ...}
do { .....} white ( DK );
for (bieuthuc1; bieuthuc2; bieu thuc3) {.....}
Với PHP4:
foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement
c. Break và Continue
break : thoát ra khỏi vòng lặp hiện thời
continue : bỏ qua vòng lặp hiện tại, tiếp tục vòng tiếp theo.
d. Switch
switch (tên biến) {
case trường hợp 1: ..... break;
Page
14
case trường hợp 2: ..... break;
case trường hợp 3: ..... break;
default :}
1.2.2.6 Hàm
a. Tham trị
Ví dụ: function takes_array($input) {
echo "$input[0] + $input[1] = ", $input[0]+$input[1];}
b. Tham biến
function add_some_extra(&$string) {
$string .= 'and something extra.';}
c. Tham số có giá trị mặc định
function makecoffee ($type = "cappucino") {
return "Making a cup of $type.\n";}
Chú ý : khi sử dụng hàm có đối số có giá trị mặc định, các biến này sẽ phải nằm về phía
phải nhất trong danh sách đối số.
Ví dụ:
Sai :
function makeyogurt ($type = "acidophilus", $flavour) {
return "Making a bowl of $type $flavour.\n";}
Page
15
Đúng :
function makeyogurt ($flavour, $type = "acidophilus") {
return "Making a bowl of $type $flavour.\n"; }
d. Giá trị trả lại của hàm
Có thể là bất kỳ giá trị nào, Tuy vây, không thể trả lại nhiều giá trị riêng lẻ nhưng có
thể trả lại một mảng các giá trị.
Ví dụ: Để trả lại một tham trỏ, bạn cần có dấu & ở cả khai báo của hàm cũng nhớ giá trị trả
lại.
function &returns_reference() {
return &$someref;}
$newref = &returns_reference();
e. Hàm biến
PHP cho phép sử dụng hàm giá trị nghĩa là khi một biến được goi có kèm theo dấu ngoặc
đơn , PHP sẽ tìm hàm có cùng tên với giá trị biến đó và thực hiện.
Ví dụ: <?php function foo() {
echo "In foo()\n";}
function bar( $arg = '' ) {
echo "In bar(); argument was '$arg'.\n";}
$func = 'foo';
$func();
Page
16
$func = 'bar';
$func( 'test' ); ?>
1.2.2.7 Các toán tử
- PHP có các toán tử cho các phép số học : + - * / %
- Các toán tử logic : and or xor ! && ||
- Toán tử thao tác với bit : & | ^ ~ << >>
- Toán tử so sánh : ==, != ,< ,> ,<=, >=, ==== (bằng và cùng kiểu - PHP4 only),
- !== (khác hoặc khác kiểu - PHP4 only)
Toán tử điều khiển lỗi : @ - khi đứng trước 1 biểu thức thì các lỗi của biểu thức sẽ
bị bỏ qua và lưu trong $php_errormsg
Ví dụ: <?php $res = @mysql_query ("select name, code from 'namelist") or-
die ("Query failed: error was '$php_errormsg'"); ?>
Toán tử thực thi : ` `- PHP sẽ thực hiện nội dung nằm giữa 2 dấu ` như một lệnh
shell. Trả ra giá trị là kết quả thực hiện lệnh
Ví dụ: $output = `ls -al`; //liệt kê các file bằng lệnh Linux
echo "$output";
1.2.2.8 Lớp và đối tượng
Class: là tập hợp các biến và hàm làm việc với các biến này. Một lớp có định dạng như sau:
<?php
class Cart {
var $items;
Page
17
function add_item ($artnr, $num) {
$this->items[$artnr] += $num; }
function remove_item ($artnr, $num) {
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;}
else {return false;} } } ?>
Lớp Cart ở đây là một kiểu dữ liệu, vì vậy ta có thể tạo một biến có kiểu này với toán tử
new
Ví dụ: $cart = new Cart;
$cart->add_item("10", 1);
Lớp có thể được mở rộng bằng những lớp khác. Lớp mới thu được có tất cả những
biến và hàm của cá lớp thành phần. Thực hiện việc thừa kế này bằng từ khoá "extends".
Chú ý : kế thừa nhiều lớp 1 lúc không được chấp nhận.
Ví dụ: class Named_Cart extends Cart {
var $owner;
function set_owner ($name) {
$this->owner = $name;} }
Các hàm khởi tạo của lớp được gọi tự động khi bạn gọi toán tử new. Tuy nhiên, các
hàm khởi tạo của lớp cha sẽ không được gọi khi hàm khởi tạo của lớp con được gọi. Hàm
khởi tạo có thể có đối số hoặc không.
1.2.2.9 Tham chiếu
Page
18