watch sexy videos at nza-vids!
TỔNG QUAN VỀ PHP

PHP

VG34.WAPATH.COM

Đây là tài liệu về PHP một ngôn ngữ lập trình với những công dụng có hơi cao cấp môt tí, nhưng sự thật cũng không khó đâu các bạn.

Để học được giáo trình PHP này không phải đọc một lần từ đầu đến cuối là được, các bạn không phải là thần thánh, mà nếu là thần thánh thì chẳng cần phải học.

Nếu bạn chấp nhận rằng mình có trí thông minh bằng với mọi người thì nên học như mọi người

Mỗi ngày bạn chỉ nên đọc và tìm hiểu một đoạn ngắn thôi, khi đã hiểu thì ngày hôm sau đọc tiếp một phần khác.... Cứ như vậy đến khi hết bài

Mỗi đoạn mang một chủ đề quan trọng và khác nhau, Mỗi đoạn được xem như một bài nhỏ và có tiểu tựa màu đỏ trong khung vàng, mỗi ngày bạn chỉ cần đọc và nghiên cứu một bài nhỏ như vậy thôi

Bạn cứ theo đúng phương pháp này thì việc học của bạn mới có kết quả tốt đẹp


PHP

 

Để có thể tiếp tục bước vào phần rộng lớn hợn của lập trình thiết kế web này, mình mong chắc bạn:
*.Bắt buộc bạn phải có kiến thức về HTML
*.Rất nên biết một client script như javascript
Sau đây là thông tin để chúng ta ba hoa về PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát.
Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
Wikipedia
Bấy nhiêu đó là đủ để chúng ta ba hoa rồi, tiếp theo là hiểu được
PHP làm gì.
_PHP là một sever script giống như ASP.
_PHP miễn phí (ASP là của Microsoft, chả mấy khi Microsoft cho không cái gì, nếu có cho không thì vẫn có cách lấy tiền khác).
_PHP làm việc được với nhiều hệ CSDL
_PHP được sử dụng rất rộng rải.
Dám nói 85% website mà các bạn đã từng viếng thăm viết từ PHP
_Nhìn chung thì PHP hơi dễ hơn các ngôn ngữ cùng loại khác.
_Khác biệt giữa sever và client script là cái client script(như javascript chẵ hạn) là sau khi trình duyệt load nó về (view source lên là thấy) nó mới chạy. Còn sever script thì đã xử lý tử trên sever òi. Trang mà các bạn đang xem cũng được viết với sever script. Bạn view source thì chỉ thấy một mớ html và javascript quen thuộc. Nhưng thật ra bản thân nó không phải như vậy đâu! Nó viết rất khác.
_Đây cũng là một trong những điểm hay của sever script, bạn nhớ cách viết chương trình lam tn1 cộng hai số của javascript không. Ta tất nhiên là có thể tính toán với PHP, nhưng có điều khi tính toán xong, in ra, người dùng xem nguồn trang chỉ có kết quả. Khỏi sợ người ta ăn cắp trương rình của mình.
_Và đây cũng có thể là điều mà các bạn sẽ không quen nếu chỉ từng dùng các client script, bạn còn nhớ cách kích hoạt một function với event không!? Tới bây giờ với những gì mình biết thì các sever script chỉ dừng lại sau khi đả "dịch" ra mọi thứ ở sever và in ra code dựng ra thứ ta mong muốn.
_Nhưng vì các sever script có thể dễ dàng in ra các client script và tại đây, một lần nữa xuất hiện sự cần thiết của con người.
_Một điều rất tuyệt ở PHP là không như javascript, chả thể nào có chuyện khác biệt giữa các trình duyệt, và thậm chí cả loại máy sever. Và cũng không có chuyện tuỳ từng nhà sản xuất muốn chế tạo cái hàm, đối tượng nào thì làm, có một tổ chức chuyên làm những chuyện ấy. Và mỗi lần có cái gì mới thì tất cả những người dùng nguồn (những nhà cung cấp cho chúng ta) sẽ đồng loạt thay đổi.
_Điểm mạnh của các sever script là làm việc với các CSDL, và làm việc với các CSDL xứng đáng để có một trang hướng dẫn riêng.
_Tuy không bắt buộc và rất cần thiết nhưng kiến thức cơ bản về lập trình sẽ rất và cực kỳ hữu ít cho bạn. bạn sẽ dễ dàng làm quen với cú pháp mới, khi đả hiểu thế nào là hàm, thế nào là biến, vòng lặp....
Cú pháp có thể thay đổi nhưng cách hoạt động vẫn thế.Nếu bạn quyết định đi tiếp vào ngôn ngữ này là bạn đã quyết định nghiên cứu một thứ rất mới và rất mạnh mẽ,nhưng cái gì càng mạnh mẽ, phức tạp thì lại càng........... các bạn hiểu ý mình rồi đó!

 

CHUẨN BỊ

Để làm việc với php, thật đáng tiếc là không phải chỉ cần tới anh bạn già NotePad mà cần phải có cái gọi là Websever (bao gồm nhiều thứ gộp lại), nơi mà thực hiện việc dịch và các thứ khác. 
Đầu tiên tìm một cái host hỗ trợ php..Nếu có điều kiện thì mua luôn một cái host(cái host nho nhỏ khoảng vài trăm nghìn một năm). Không có điều kiện thì tìm cho mình một cái host free.
Một số địa chỉ web free host:
byethost.com
summerhost.info
000webhost.com..........................
các bạn có thể tìm thêm với google.
_Một số lời khuyên của mình là nên tìm những phần mềm chuyên nghiệp để thiết kế luôn như Dreamweaver(cái này hay lắm). Chứ anh bạn già NotePad củng phải nghĩ hưu chứ. cái này ra tịm đĩa mua, 7000 một bộ đủ các phần mềm.
_Nếu dư tiền thì đầu tư cho mình một cái USB, cài đặt những gì cần kiếp, đừng tiếc tiền, chừng nào xài tiền phung phí, cho gái, đánh bạc thì đáng trách, chứ đầu tư cho kiến thức thì không sao
_À thêm một lời khuyên nữa là đừng dùng trình duyệt IE, chuyễn qua xài FF đi.

 

 

 

TRANG ĐẦU TIÊN

PHP tuy dễ dàng sinh ra mã HTML nhưng cũng có thể chèn vào giữa nội dung file HTML.
Mã nguồn:[Chọn]
<html>
<head>
<title>Ví dụ php</title>
</head>
<body>
<?php
echo'Đây là text được sinh ra bởiPHP';
?>
</body>
</html>
Để đánh dấu nội dung PHP, ta đặt code PHP trong cặp<? và ?>bạn copy đoạn mã trên, save lại với tên php code.php chẵn hạn, lưu ý là.php, đặt nó vào trong thư mục gốc của host ,websever và mở trình duyệt chạy thử nhé.
File php có nhiều phần mở rộng khác nhau như là .php3, .php4, nhưng cứ .php thôi cho nó khoẻ .
Một trang sẽ được hiện ra. hãy thử xem source nguồn của nó, bạn sẽ không thể tìm thấy các cặp<?và?>cũng như từ echo, chỉ những HTML và text bình thường.

 

 

CHƯƠNG 1

BIẾN PHP

Trước tiên, dành cho các bạn mới bước chân vào lĩnh vực lập trình:
Biến là đại lượng được đặt tên, dùng để lưu giữ gái trị và gái trị có thể thay đổi trong quá trình thực hiện chương trình.
SAK 11
Quả thật khái niệm được coi là cơ bản này khá là mơ hồ cho những người mới bắt đầu như chúng ta,nhưng các bạn sẽ từ từ hiểu rỏ mọi vấn đề khi tiếp tục đi sâu vào!
Một ví dụ đời thường:
Bạn có một bao thuốc lá, bạn lấy cây viết đặt tên nó là a, bạn nhét 10,000 VND vào bao thuốc lá, thì lúc này bao thuốc là có giá trị là 10,000 VND (tất nhiên là không tính tiền cái bao hihihi ) rồi một hồi sau, bạn lấy 10,000 ra, bỏ vào tờ 5,000 thì nó có giá trị 5,000....hay là x,y,z trong một bài toán, ta cho x=5, y=6, z=x+y thì Z=11
Còn trong lập trình php
Để đánh dấu đây là một biến, ta dùng ký tự $ và một số ký tự tiếp theo, các ký tự kiếp theo cần tuân thủ một số nguyên tắc như sau:
Quy tắc đặt tên biến
Có 3 quy tắc: 
* Ký tự bắt đầu phải là một chữ cái, còn các ký tự tiếp theo có thể là chữ số, gạch dưới, chữ cái. Ngoài mấy thứ kể trên ra, bạn không nên thêm bết cứ thứ gì khác vào tên biến! 
* Không được có khoản trắng 
* Các biến phân biệt chữ hoa chữ thừơng, vì thế ANH sẽ khác với Anh cũng như anh, để tránh rắc rối, ta nên dùng chữ thường cho tất cả tên biến và dùng dấu _ để phân cách thay cho khoảng trắng
Một số ví dụ:
Các tên biến không hợp lệ:
$11a2 $lop 11
Các tên biến hợp lệ:
$lop11A2 $lop_a2

 

CÁC GIÁ TRỊ CỦA BIẾN

Trước tiên, mình xin trình bày với các bạn 3 kiểu giá trị cơ bản nhất
Boolean
Boolean là gái trị logic có hai giá trị là TRUE hoặc FALSE.(TRUSE có nghĩa là đúng, FALSE là sai)
Số
là loại giá trị dùng đễ tính toàn đó, đừng nói bạn không biết số là gì nha!Số thì có số động, số nguyên......
Chuỗi
Chuỗi là các kí tự bảng chữ cái + kí tự đặc biệt + số, nói chung là bất kì cái gì mà ta viết ra trên bàng phím được, thì là chuỗi!
Câu lệnh gán:
Lệnh gán là 1 trong những lệnh cơ bản nhất của ngôn ngữ lập trình, trong javascript có dạng:
<tên biến>=<biểu thức>;
Nếu gán biến với giá trị chuỗi:
<tên biến>="<biểu thức>";
cần có thêm cặp dấu nháy.
VD:
ta gán biến a và b với các giá trị như sau:
$a=1;
$b="1";
$a sẽ mang gái trị số 1, còn $b mang giá trị chuỗi "một" ==> đặt bên trong cặp dấu nháy là chuỗi!
Gán biến với giá trị Boolean
VD:
$a=TRUE;
Gán như thế này có nghĩa là $a mang giá trị ĐÚNG.
Chú ý là nếu bạn gán $a như thế này:
$a="TRUE";
Có nghĩa là bạn đơn thuần gán cho nó một chuỗi gồm các chữ cái TRUE.

 

TOÁN TỬ

Biểu thức:
Trong lập trình đều có một số quy tắc chung, ví dụ như việc ưu tiên tính toán với các phép toán 
+,-,*,/.
hay là ưu tiên với biểu thức trong dấu (). Mọi quy tắc số học về mặt này đều đúng trong php
1.Toán tử số học
(+[cộng], -[trừ],*[nhân], /[chia] , %[chia lấy dư],++[tự tăng 1], --[tự giàm 1])
+ : Phép cộng.(khỏi giả thích)
- : Phép trừ.(khỏi giả thích)
* : Phép nhân.(khỏi giả thích)
/: Phép chia.(khỏi giả thích)
% : Phép chia lấy phần dư.
VD: 5/3 được 1 dư 2 thì 5%3=2,
++: Phép tăng một đơn vị.
VD:
1++ = 2;
5++ = 6
--: Phép giảm một đơn vị.
VD:1--= 0;
9 -- = 82.
Toán tử so sánh
== : So sánh bằng.
> : So sánh lớn hơn.
< : Nhỏ hơn.
>= : So sánh lớn hơn hoặc bằng.
<= : Nhỏ hơn hoặc bằng.
!= : So sánh khác
Chú ý: chỉ có <= (bé hơn hoặc bằng) chứ không có =<(bằng hoặc bé hơn, cũng như thế đối với >=, không có chuyện =>)
3.Toán tử logic && (and):
Giá trị đúng khi cả hai cùng đúng.
VD:nếu(anh yêu em)và(em yêu anh)thì cưới ngay.
ta chỉ cưới ngay khi hai điều kiện trong ngoặc cùng đúng.
|| (or) : Giá trị đúng nếu một trong 2 đều đúng.
VD:nếu(em đau khổ)hoặc(anh đau khổ) thì chia tay!
Chỉ cần một trong hai điều kiện đúng là chia tay
Đối với chuỗi 
Toán tử.
tượng trưng cho việc nối hai chuỗi lại.
VD:
$a="I am ";
$b="Nguyen";
$c=$a.$b;
thì c có giá trị là chuỗi "I am Nguyen".

 

Toán tử trong PHP cũng giống như trong các ngôn ngữ khác.
Toán tử được sữ dụng khai báo trên tầm vực script sẽ có tầm vực trên toàn script .
Biến khai báo trong hàm ( function ) sẽ có tác dụng trên tầm vực của hàm đó .
1.Các phép toán học
========================
Toán tử| Tên| Ví dụ
-----------------------------------------
+cộng $a+$b;
-trừ $a-$b;
*Nhân $a*$b;
/chia $a/$b;
%Modulo $a%$b;
=======================
2.Các phép toán nối chuỗi
Các phép toán nối chuỗi là dấu "."
Ví dụ :
<?
$a="http://www.";
$b="library";
$b=$b."php.net";
$a=$a.$b;
echo$a;// bạn test xem
?>
3.Các phép toán trả về từ gán
Sữ dụng phép toán trả về phép toán học khác .
<?
$a="http://www.";
$b="libraryphp";
$a=$a.$b;
echo$a.($c=".net");// bạn test xem
?>
4.Các phép gán kết hợp
Trong PHP các bạn có thể sữ dụng các phép toán gán kết hợp,sẽ giảm bớt thời gian khai báo.
Sau đây là bảng thống kê phép toán gán kết hợp ( có 2 cách sữ dụng )
========================
Toán tử| sữ dụng| Tương ứng
========================
+=$a+=$b $a=$a+$b;
++$a++$a=$+1;
-=$a-=$b $a=$a-$b;
--$a--$a=$a-1;
/=$a/=$b $a=$a/$b;
*=$a*=$b $a=$a*$b;
%=$a%=$b $a=$a%$b;
.=$a.=$b $a=$a.$b;
========================
Bên trên là một số toán tử mà mình sưu tầm được, hi vọng nó sẻ giúp ít phần nào cho các bạn!

 

PHP VỚI CẤC KIỂU GIÁ TRỊ

Bài này sẽ nêu ra một số đểm linh động của php về mặt tính toán và các giá trị.
Các bạn nên đọc bài này để tránh thắc mắc về sau gặp phải bời những điểm khá linh động đó!
VD: Ta có đoạn code
Mã nguồn:[Chọn]
<?
php
$a=2;
$b="2 chuỗi";
$c=$a+$b;
echo$c;
?>
Nếu bạn chạy thử và kết quả in ra màn hình sẽ là 4. Sỡ dĩ có điều này là do nếu một chuỗi bắt đầu bằng một số nguyên hay số động PHP có thể xử lý nó như kiểu số.
Còn một trường hợp như thế này:
Mã nguồn:[Chọn]
<?php
$a=2;
$b=2.345;
$c=$a+$b;
echo$c;
?>
$a là số nguyên, $b là số động và $c=$a+$b sẽ là một số động 4.345
Với PHP làm việc với kiểu giá trị của biến thôi không cũng là một nghệ thuật. Mình sẽ có những loạt bài dành riêng cho mấy chuyện này.

 

NHÁY ĐƠN – NHÁY KÉP

Mấy cái này ví dụ cái là các bạn hiểu ngay!
Dấu nháy và biến
Mình có hai đoạn code php, cả hai đều giống nhau, chỉ khác nhau ở cặp dấu nháy dòng thứ 3.

Mã nguồn:[Chọn]
<?php
$dot=".net";
$domain="wapcry$dot";
echo$domain;
?>
Đoạn code php trên sẽ in ra kết quả là:wapcry.net, nhưng với đoạn code này:
Mã nguồn:[Chọn]
<?php
$dot=".net";
$domain='wapcry$dot';
echo$domain;
?>
Kết quả sẽ là:wapcry$dot.
Bạn có thể bao lấy chuỗi bằng cặp dấu nháy đôi, biến trong chuỗi sẽ được mỡ rộng, còn khi bạn bao chuỗi bằng cặp dấu nháy kép, biến trong chuỗi sẽ không được mỡ rộng!
Mình thường dùng kèm phép nối chuỗi vào, làm thế sẽ không bị nhầm lẫn. 
VD:
Mã nguồn:[Chọn]
<?php
$dot=".net";
$domain='wapcry'.$dot;
echo$domain;
?>
Mỗi khi in ra hay gắn cái gì có chứa chuỗi và biến, mình đều bao đoạn chuỗi thứ nhất với một cặp dấu nháy, sau đó thực hiện phép nối chuỗi đó với biến bằng mộ dấu chấm, và cứ thế.
Thay thế các cặp dấu nháy cho nhau
Nếu bạn muốn in ra một chuỗi chứ ký tự(")thay vì đặt thêm trước nó một dấu \ ta có thể đơn giản thay cặp dấu nháy bao ngoài chuổi bằng cặp dấu nháy đơn. 
VD:
Mã nguồn:[Chọn]
<?php
echo'Dấu nháy kép" ';
?>

 

PHP HẰNG

Định nghĩa hằng
Hằng số là đại lượng có giá trị không đổi, theo nghĩa toán học. Còn trong lập trình thì cũng hơi tương tự như thế.
Hằng được đặt ra để lưu giữ một giá trị (tương tự như biến) nhưng chỉ khác một điều duy nhất là sau khi khai báo giá trị , ta không thể thay đổi giá trị của nó nữa!
Hàm define() được sử dụng để tạo một hằng số:
Hàm này có cấu trúc sau:
define ("tên_hằng","giá trị của hằng");
Ví dụ:
define ("COMPANY","NS Co.Ltd");// Định nghĩa hằng COMPANY với giá trị là "NS Co Ltd"define ("diem_so",4.5);
// định nghĩa hằng diem_so với giá trị là 4.5 (hic... thi lại );
Sau khi một hằng số được tạo ra,ta có thể sử dụng chúng thay cho giá trị của chúng:
echo ("Tên công ty: ".COMPANY);
Điều này tương đương với echo ("Tên công ty: NS Co Ltd");
Một số hằng xây dựng sẵn(built in constant)
PHP có chứa một số hằng được xây dựng sẵn.
TRUE và FALSE là 2 hằng đã được dựng sẵn với chỉ định true (1) và false (=0 hoặc một xâu rỗng)
Hằng số PHP_VERSION chỉ định phiên bản của bộ phân tích PHP mà bạn đang dùng hiện tại.
HằngPHP_OS chỉ định hệ điều hành server mà trình phân tích PHP đang chạy.
echo (PHP_OS);
// in ra màn hình"Linux" (ví dụ)_FILE_and_LINE_ trả về tên của đoạn script (đoạn mã nhúng) đang được phân tích tại dòng hiện thời trong đoạn mã script.
PHP còn cung cấp một số hằng để thông báo lỗi như E_ERROR, E_WARNING, E_PARSE và E_NOTICE.
Ngoài ra, PHP còn cung cấp một số biến cung cấp thông tin về môi trường PHP đang sử dụng.
Để xem các thông tin này,bạn có thể dùng hàm phpinfo() như sau:
<HTML>
<!-- phpinfo.php-->
<BODY>
<?php
phpinfo();
?>
</BODY>
</HTML>

 

 

PHP HẰNG

Định nghĩa hằng
Hằng số là đại lượng có giá trị không đổi, theo nghĩa toán học. Còn trong lập trình thì cũng hơi tương tự như thế.
Hằng được đặt ra để lưu giữ một giá trị (tương tự như biến) nhưng chỉ khác một điều duy nhất là sau khi khai báo giá trị , ta không thể thay đổi giá trị của nó nữa!
Hàm define() được sử dụng để tạo một hằng số:
Hàm này có cấu trúc sau:
define ("tên_hằng","giá trị của hằng");
Ví dụ:
define ("COMPANY","NS Co.Ltd");// Định nghĩa hằng COMPANY với giá trị là "NS Co Ltd"define ("diem_so",4.5);
// định nghĩa hằng diem_so với giá trị là 4.5 (hic... thi lại );
Sau khi một hằng số được tạo ra,ta có thể sử dụng chúng thay cho giá trị của chúng:
echo ("Tên công ty: ".COMPANY);
Điều này tương đương với echo ("Tên công ty: NS Co Ltd");
Một số hằng xây dựng sẵn(built in constant)
PHP có chứa một số hằng được xây dựng sẵn.
TRUE và FALSE là 2 hằng đã được dựng sẵn với chỉ định true (1) và false (=0 hoặc một xâu rỗng)
Hằng số PHP_VERSION chỉ định phiên bản của bộ phân tích PHP mà bạn đang dùng hiện tại.
HằngPHP_OS chỉ định hệ điều hành server mà trình phân tích PHP đang chạy.
echo (PHP_OS);
// in ra màn hình"Linux" (ví dụ)_FILE_and_LINE_ trả về tên của đoạn script (đoạn mã nhúng) đang được phân tích tại dòng hiện thời trong đoạn mã script.
PHP còn cung cấp một số hằng để thông báo lỗi như E_ERROR, E_WARNING, E_PARSE và E_NOTICE.
Ngoài ra, PHP còn cung cấp một số biến cung cấp thông tin về môi trường PHP đang sử dụng.
Để xem các thông tin này,bạn có thể dùng hàm phpinfo() như sau:
<HTML>
<!-- phpinfo.php-->
<BODY>
<?php
phpinfo();
?>
</BODY>
</HTML>

 

 

ĐỔI KIỂU DỮ LIỆU

Như chúng ta đã biết, tất cả các biến PHP đều có kiểu dữ liệu riêng.
Kiểu dữ liệu của biến sẽ được tự động xác định bởi giá trị đặt vào biến
$a=1 // $a là kiểu integer
$a=1.2 // Bây giờ, nó là kiểu double
$a="1" // Và bây giờ nó là kiểu stringa)
Chuyển kiểu chuỗi và lừa kiểu dữ liệu
Nếu bạn làm các thao tác tính toán số trên một chuỗi, PHP sẽ tính toán chuỗi như là một số.
Điều này được biết đến với cái tên gọi là "chuyển kiểu chuối (String conversion), mặc dù giá trị chuỗi của nó có thể không cần phải thay đổi.
Trong đoạn ví dụ sau, biến $str được xác định là một chuỗi:
$str="756300 không có";
Nếu chúng ta cố cộng thêm một giá trị nguyên là 3 vào biến $str, biến $str sẽ tự động tính với số nguyên 756300:
$x=4+$str;//$x =756304
Nhưng bản thân giá trị của biến $str không thay đổi
echo ($str); // In ra màn hình chuỗi "756300 không có"
Chuyển kiểu chuỗi phải tuân theo 2 nguyên tắc sau:
- Chỉ những chuỗi bắt đầ là một xâu các chữ số. Nếu chuỗi bắt đầu bằng một giá trị số hợp lệ, chuỗi này sẽ được xác định như giá trị của nó, trong trường hợp khác, nó sẽ trả về 0.
VD: chuỗi"35 tuổi" sẽ được ước lượng là 35, nhưng chuỗi "tuổi 35" sẽ chỉ xác định giá trị 0.
- Một chuỗi sẽ chỉ được xác định như là một giá trị kiểu double nếu giá trị kiểu double được miêu tả bao gồm toàn bộ chuỗi. Chuỗi "3.4", "-4.2" sẽ được ước lượng như giá trị thực 3.4 và -4.2.Nếu một ký tự không phải là ký tự kiểu số thực được đưa vào chuỗi, giá trị của chuỗi đó sẽ được ước lượng như là một số nguyên. Chuỗi "3.4 dollar" sẽ thành số nguyên 3.
Trong việc cộng với chuỗi chuyển kiểu, PHP sẽ thực hiện "lừa kiểu" giữa 2 kiểu số. Nếu bạn thực hiện một phép toán số học giữa kiểu thực và kiểu nguyên, giá trị sẽ là số thực
$a=1 //$ a là một số nguyên
$b= 1.0 //$b là số thực
$c=$a+$b //$c là kiểu số thực ,
= 2.0$d = $c+"6th" //$d là kiểu số thực= 8.0
Ép kiểu dữ liệu
Ép kiểu dữ liệu cho phép bạn thay đổi kiểu dữ liệu của biến
$a=11.2// $a là kiểu thực
$a=(int)$a// Bây giờ, $ a là kiểu nguyên, giá trị = 11$a= (double)$a// Bây giờ $a lại trở về kiểu thực 
= 11.0$b= (string)$a// $b là giá trị kiểu chuỗi ="11"Ngoài ra, chúng ta còn được phép ép kiểu (array) và (object)(integer) tương đương với (int); (fload) và (real) tương đương với (double)
Một số hàm tiện ích khác
PHP có một số hàm hỗ trợ làm việc với các biến- Hàm gettype($ten_bien) xác định kiểu của biến. Nó sẽ trả về một trong các giá trị: 
"integer","double", "string", "array","object", "class", "unknown type"
(Chúng ta sẽ tìm hiểu kỹ hơn vể mảng (array) và kiểu đối tượng (object) ở các bài sau.
Ví dụ:
echo(gettype($name));
- Hàm settype($ten_bien,"kieu_du_lieu") sẽ đặt kiểu dữ liệu cho biến $ten_bien. 
Kiểu dữ liệu được viết dưới dạng một chuỗi, và có thể có một trong các kiểu sau:
"integer", "double", "string","array", "object".
Nếu kiểu dữ liệu không được đặt, giá trị false sẽ được trả về, còn nếu thành công, nó sẽ trả về giá trị true.
VD:
$a=7.5; //$a là kiểu thựcsettype($a,"integer");
// bây giờ nó là một số nguyên có giá trị 7- Hàm isset($ten_bien) được sử dụng để xác định xem biến $ten_bien đã đặt một giá trị nào đó hay chưa. Nếu biến đó đã có giá trị,hàm trả về true.Trong truờng hợp ngược lại, hàm trả về giá trị false;
- Hàm unset($ten_bien) được sử dụng để huỷ bỏ biến $ten_bien, giải phóng bộ nhớ chiếm dụng của biến đó.

 

 

CÂU LỆNH IF

 

Trong cuộc sống, có nhiều việc ta chỉ làm khi thoả mãn một số điều kiện cụ thể.
Ví dụ:
Một ông bố hứa với con trai:
_Nếu con đỗ đại học thì bố sẽ thưởng cho con một chiếc xe.
Chừng nào mà điều kiện con đỗ đại học thì ông bố mới lo tới chuyện thưởng cho con một chiếc xe.
Tới một ngày kia, ông bố lại nói với cậu con trai.
_Nếu con đỗ đại học thì bố sẽ thưởng cho con một chiếc xe, nếu không thì đi nghĩa vụ quân sự.
Ở câu nói thứ nhất của ông bố, không nói rõ thi rớt thì có chuyện gì, còn ở câu thứ ai có nói rõ.
Trong lập trình tuy hình thức từng ngôn ngữ hơi khác nhau nhưng cũng có hai dạng cơ bản của câu điều kiện, ta chỉ bàn tới câu lệnh này trong phạm vi PHP
if-then
if(<điều kiện>)
{
câu lệnh 1;
câu lệnh 2;
................
}
Nếu chỉ có một câu lệnh sau vế điều kiện thì ta không cần cặp dấu ngoặc {}, nhưng luôn có có hiện diện của cặp dấu {} là một thói quan tốt, giúp tránh nhầm lẫn!
if-then-else
if(<điều kiện>)
{
//các câu lệnh sẽ thực hiện nếu điều kiện thoả mản
câu lệnh 1;
câu lệnh 2;
................
}else{
//các câu lệnh thực hiện khi điều kiện không thoả mản
câu lệnh 1;
câu lệnh 2;
................
}
Cách xác định đúng hay sai
Ví dụ ta có đoạn script:
$a=3;
$b=5;
if($a<$b)
{
echo"Đúng";
}else{
echo"Sai";
}
Trường hợp này thì kết quả sẽ là Đúng
Nhưng hãy xét thêm trường hợp:
$a=3;
$b=5;
if($a<$b==false)
{
alert("Đúng");
}else{
alert("Sai");
}
Thì kết quả sẽ là một hộp thông báo với nội dung là Sai??????
:bản thân biểu thứ ca<b với a=3 và b=5 mang giá trị đúng(true) mà đúng(true)==sai(flase) thì tất nhiên là sai.
Sữ dụng toán tử or (||) ,and(&&)
Xét đoạn code, nếu với một số a có chia hết cho cả 6 và 4 không, nếu có thì kết quả sẽ là có, ngược lại thì không.
<?php
$a=12;
if(($a%4==0)&&($a%6==0))
{
echo"Có";
}else{
echo"không"
}
?>
Kết quả dĩ nhiên sẽ là có
Chú ý:Tự bản thân toán tử<=hay>=đã chứa một toán tử hoặc.

 

CÂU LỆNH if -else

Câu lệnh if-else dùng cho trường hợp chỉ có một điều kiện cần được xem xét tới, nhưng trường hợp có nhiều điều kiện cũng như khả năng sảy ra thì sao!?!?
Xét ví dụ:
Nếu điểm Trung Bình năm của con từ 9 trở lên thì quà của con sẽ là một chiếc Novol, từ 7 tới dưới 9 là một chiếc Martin, còn mà dưới 7 là có chuyện đó!.
Câu nói đó trong PHP sẽ là:(giả sử điểm là 8 đi ha)
<?php
$diem=8;
if($diem>=9)
{
echo"Được một chiếc Novol";
}
elseif($diem>=7)
{
echo"Được một chiếc Martin";
}else{
echo"Tiêu rồi";
}
?>Theo như giả sử thì Được một chiếc Martin rồi ha!Chú ý, việc dùng elseif hoàn toàn khác với dùng nhiêu câu lệnh if như trong ví dụ sau đây:
<?php
diem=10;
if($diem>=9)
{
echo"Được một chiếc Novol";
}
if($diem>=7)
{
echo"Được một chiếc Martin";
}else{
echo"Tiêu rồi";
}
?>
Lần này chúng ta tự tin hơn, cứ mạnh dạng cho diem=10 . Cùng với sự tự tin đó, kết quả sẽ là:
Được một chiếc Novol và cả Được một chiếc Martin.
Sướng nhĩ, nhưng thế là do lỗi lập trình, một ngày nào đó khi bạn trở thành một lão làng lập trình, bạn tự viết cho mình một website buôn bán, và lầm lẫn như thế này sẽ làm bạn.......
Thật ra nếu muốn viết đoạn trên bằng cách dùng nhiều câ lệnh if nhưng theo đúng cách ta nghĩ thì phải:
<?
$diem=10;
if($diem>=9)
{
echo"Được một chiếc Novol";
}
if(($diem>=7)&&($diem<9))
{
echo"Được một chiếc Martin";
}
if($diem<7)
{
echo"Tiêu rồi";
}
?>
Nhưng quả thật sẽ rất khó khăn nếu có nhiều mức thưởng nhỉ!

 

Sau đây mình sẽ giới thiệu một cách đặt biến đặc biệt :
Các bạn xem VD sau
<?
$math=10+10;
if($math==20)$rs= "Đúng";
else
$rs= "Sai";
?>
Bây giờ tớ thay đoạn mã trên bằng đọan dưới đây, các bạn xem sự khác biệt nhé
<?
$math=10+10;
$rs=$math==20?"Đúng":"Sai" ;
?>
Chúng ta thấy lệnh điều kiện if và else được thay thế bằng ? :
Như vậy sẽ rất tiện cho chúng ta khi lập trình và nhìn cũng thẩm mỹ hơn.

 

PHP VÒNG LẬP

 

Bạn muốn bày tỏ tình yêu với người ấy, và muốn cho người ấy biết bạn yêu người ấy đến nức nào, và ý tưởng của bạn sẽ là một trang web với hàng ngàn dòng chữ :
I LOVE YOU
Có hai cách để làm chuyện này:
_Đầu tiên bạn hãy viết ra một câu:I LOVE YOU, sau đó copy & past bằng tổ hợp phím Ctrl + V cho nó lẹ, được cở 5,6 dòng, tô đen hết lại past tiếp, được cỡ một ganf, tô den rồi past cho nó nhiều, chả mấy chốc cũng sẽ được một ngàn dòng.
_Cách thứ hai là làm mọi thứ với khoảng 5 dòng với javascript, quăng luôn đoạn code để mọi người xem rồi ta cùng đi vào tìm hiểu sau:
Vòng lặp While
<?php
while($i<1001)
{
echo"<b>I LOVE YOU</b><br />";
$i=$i+1;
}
?>
Ta hãy bắt đầu với dòng while($i<1000), chữ while trong tiếng Anh có nghĩa là trong khi, còn trong trường hợp này có nghĩa là: khi điều kiện còn đúng thì làm đi, làm lại cái trong cặp dấu ngoặc móc, với câu lệnh trên của chúng ta thì điều kiện là $i<1001.
Dòng
echo "<b>I LOVE YOU</b><br />";
in ra sòng mã HTML mà ta cần.
Còn dòng
$i=$i+1;
cũng không kém gì quan trọng, nếu tiếu dòng này, biến $i sẽ lưu giữ mãi một giá trị và sẽ chẳn bao giờ lớn hơn 1001, vòng lặp sẽ chạy mại không dừng! trong mọi trường hợp, điều này không hề có lợi cho bất cứ ai, nhà sản xuất hay người sử dụng!
Cú pháp của vòng lặp While:
while(<điều kiện>)
{
câu lệnh 1;
câu lệnh 2;
.................
}
Vòng lặp Do...... While
VÒng lặp Do....While
gần giống như vòng lặp While, chỉ có điều là các câu lệnh sẽ được là mít nhất một lần rồi mới bắt đầu kiểm tra điều kiện ở các lần sau.

Cú pháp:
do
{
câu lệnh 1;
câu lệnh 2;
.................
}
while(<điều kiện>);

 

Vòng lặp For


Bạn hãy xem ví dụ với cùng chức năng in ra 1000 cấu I LOVE YOU như đoạn code trên nhưng với vòng lặp for:
for($i=0;
$i<1001;
$i++)
{
echo"<b>I LOVE YOU</b><br />";
}
or(phần khởi tạo;
phần điều kiện;
tăng hay giảm giá trị)
Phần khởi tạo: bạn khái báo biến đếm và gán giá trị ban đầu cho nó luôn.
Phần điều kiện: bạn đặt ra điều kiện.Phần tăng/giảm gái trị: đây là điềm khác biệt nhất với vòng lặp while, trong khi vòng lặp while thì cần một câu lệnh để tăng/giảm giá trị cho biến đếm, thì bản chất vòng lặp for đã có sẵn điều này.
Mình trong ví dụ trên, điều kiện mình đã đạt theo kiểu toán tự rút gọn ( ++ có nghĩa là tự tăng lên 1, bạn nên xem lại bài toán tử)
Chú ý: mọi con đường đều về La Mã, ở các ví dụ trên mình chỉ cho tăng biến đếm lên, trong khi vẫn có thể làm như thế với các giảm biến đếm xuống, chỉ cần linh hoạt một chút:
<?php
for($i=1001;
$i>1;
$i--)
{
echo"<b>I LOVE YOU</b><br />";
}
?>
hãy linh hoạt và vận dụng thích hợp cho mục đích của bạn, đó là việc mà chỉ con người mới làm được!

 

MẢNG TRONG PHP

Nếu bạn đã từng học qua bất cứ ngôn ngữ lập trình nào, thì chắc hẵn sẽ không xa lạ gì với mảng!
Còn nếu bạn là người mới vào nghề như mình, thì đây là một khái niệm mới, cũng khá khó đấy!
Mảng gồm có hai loại, mảng một chiều và mảng nhiều chiều, trong mãng nhiều chiều thông dụng nhất ta dùng tới mảng hai chiều, vì thế ta chỉ nói về mảng một chiều và mảng hai chiều.
Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử có một chỉ số. 
Đề mô tả mảng một chiều cần xác định kiểu của phần tử và cách đánh số các phần tử của nó.Nhớ lại ví dụ về biến mà mình môtả với bao thuốc lá ở những bài nói về biến, bây ta ví dụ trường hợp ta có 10 bao thuốc là và bạn quyết định đặt tên cho chúng là bao1,bao2,....,bao8,bao9,bao10, với mục đích là mỗi bao chứa một cái gì đó, tới khi nào cần cái gì thì lấy ra mà dùng.
Còn mảng, mảng chính là cả cây thuốc lá!, đơn giản chỉ là một cây thuốc là, bên trong có những bao thuốc lá!giải thích cho dài dòng, mảng 1 chiều đơn thuần là một tập hợp các biến, và các biến có thứ tự thay vì tên!tạo một mảng:
Ví dụ tạo một mảng đơn giản
<?php
$mang=array("a","b","c");
echo$mang[0]
?>
Thử in ra phần tử thứ nhất của mảng(kết quả sẽ là a)Đây cũng là một các để khia báo mảng, các phần tử của mảng được đặt trong dấu nháy kép và chúng được ngăn cách nhau giữa dấu (,)
Còn đây là cách thứ hai, khá dễ nhìn!
Bạn hãy khai báo mảng, không cần khai báo nội dung bên trong:
$mang=array();
sau đó, khai báo từng phần tử bằng cách này:
$mang[0]="a";
$mang[1]="b";
$mang[2]="c";
$mang[3]="d";
Bạn chú ý là trong PHP phần tử đầu tiên của mảng có thứ tự là 0.
____________
Duyệt qua mảng với vòng lặp.

Với một mảng như thế này, ý tưởng là chạy một vòng lặp từ đầu mảng tới cuối mảng lấy ra giá trị.
Để tìm được độ dài của mảng php cung cấp cho cúng ta một hàm, đó là hàm count, php cung cấp rất nhiều các hàm để làm việc với mảng, cụ thể ta sẽ nói tới sau,bây giờ chỉ quan tâm với cái hàm count
Hàm count() nhận vào một tham số chính là mảng. Ví dụ tương ứng với mảng $mang trên ta có:
<?php
$mang=array();
$mang[0]="a";
$mang[1]="b";
$mang[2]="c";
$mang[3]="d";
echocount($mang);
?>
kết quả in ra sẽ là 4 đi tiếp vào cái vòng lặp, ở đây mình dùng vòng lặp for
<?php
$mang=array();
$mang[0]="a";
$mang[1]="b";
$mang[2]="c";
$mang[3]="d";
for($i=0;$i<count($mang);
$i++)
{
echo$mang[$i]."<br />";
}
?>

 

PHP MẢNG KẾT HỌP

Mảng kết hợp đơn giản là loại mảng nhưng:
Chúng ta đi xem ví dụ:
<?php
$mang=array("a","b","c");
echo$mang[0]
?>
Đây là mảng cơ bản của chúng ta,và khi lấy giá trị của một phần tử trong mảng ra, ta tham chiếu tới nó với khoá là giá trị thứ tự của nó.
Điểm khác biệt của mảng kết hợp là cái khoá.
Ta có thể khai báo như sau:
<?php
$mang=array("name"=>"Nguyên","website"=>"wapcry.net");
echo$mang["name"]
?>
kết quả sẽ là :Nguyên ta cũng có thể khai báo với cách khác như sau:
$mang=array();
$mang["name"]="Nguyên";
$mang["website"]="wapcry.net";
Cách duyệt qua mạng này cũng hơi khác với mảng một chiều. Để duyệt mảng ta kết hợp vòng lặp while và lis()=each()
Ví dụ để lấy cả khoá lẫn giá trị ta làm như sau:
<?php
$mang=array("name"=>"Nguyên","website"=>"wapcry.net");
while(list($key,$value)=each($mang))
{
echo"<b>Khoá</b>: ".$key." <b>giá trị</b>: ".$value."<br />";
}
?>
Còn ví dụ chỉ muốn lấy ra giá trị thì chỉ khác ở mỗi dòng vòng lặp 
while:while(list(,$value)=each($mang))
bỏ đi biến $key, nhưng vẫn để trước biến $value dấu ( , )
Giải thích nguyên lý làm việc như sau:
Mỗi lần vòng lặp chạy each()sẽ lấy ra lần lượt một cặp khoá và giá trị tương ứng.
2 giá trị đó sẽ được gán lần lượt cho biến ở vị trí thứ nhất và thứ hai đạt trong list()
Vòng lặp dừng lại khi duyệt qua hết mảng.

 

MẢNG DỰNG SẲN

Có khá nhiều mảng dựng sẵn trong các ngôn ngữ lập trình, php cũng như vậy, và những mảng này rất hữu ít trong khi làm việc.
Ở đây mình chạy đoạn mã để truyxau6t1 các kháo và gái trị của mảng $_SERVER một mảng khá hữu ích:
<?php
$mang=$_SERVER;
while(list($key,$value)=each($mang))
{
echo"<b>Khoá</b>: ".$key." <b>giá trị</b>: ".$value."<br />";
}
?>
Đoạn mã này nằm trong filen1.php đặt trong thư mục new, host hệ điều hành Window, thư mục root nằm ở 
C:/Program Files/VertrigoServ/www. 
Kết quả là đây:
Mã nguồn:[Chọn]
Khoá: HTTP_HOST giá trị: 
127.0.0.1:8080
Khoá: HTTP_USER_AGENT giá trị: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
Khoá: HTTP_ACCEPT giá trị: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Khoá: HTTP_ACCEPT_LANGUAGE giá trị: en-us,en;q=0.5
Khoá: HTTP_ACCEPT_ENCODING giá trị: gzip,deflate
Khoá: HTTP_ACCEPT_CHARSET giá trị: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Khoá: HTTP_KEEP_ALIVE giá trị: 300
Khoá: HTTP_CONNECTION giá trị: keep-alive
Khoá: HTTP_COOKIE giá trị: _csuid=49cdeeba4344116b; SMFCookie956=a%3A4%3A%7Bi%3A0%3Bs%3A1%3A%221
%22%3Bi%3A1%3Bs%3A40%3A%228f96f02f0ffe510b7f35f7a8a78faf0b39a2b5e5
%22%3Bi%3A2%3Bi%3A1435289626%3Bi%3A3%3Bi%3A0%3B%7D; username=Nguy%EAn;SMFCookie891=a%3A4%3A%7Bi%3A0%3Bs%3A1%3A%223
%22%3Bi%3A1%3Bs%3A40%3A%220a8eaaa533fa14a9e62e4df7da7094e41769f28c
%22%3Bi%3A2%3Bi%3A1437102838%3Bi%3A3%3Bi%3A0%3B%7D
Khoá: HTTP_CACHE_CONTROL giá trị: max-age=0
Khoá: PATH giá trị: C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
Khoá: SystemRoot giá trị: C:\WINDOWS
Khoá: COMSPEC giá trị: C:\WINDOWS\system32\cmd.exe
Khoá: PATHEXT giá trị:.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
Khoá: WINDIR giá trị: C:\WINDOWS
Khoá: SERVER_SIGNATURE giá trị: Apache/2.0.63 (Win32) PHP/5.2.6 Server at 127.0.0.1Port 8080
Khoá: SERVER_SOFTWARE giá trị: Apache/2.0.63 (Win32) PHP/5.2.6
Khoá: SERVER_NAME giá trị: 127.0.0.1
Khoá: SERVER_ADDR giá trị: 127.0.0.1
Khoá: SERVER_PORT giá trị: 8080
Khoá: REMOTE_ADDR giá trị: 127.0.0.1
Khoá: DOCUMENT_ROOT giá trị: C:/Program Files/VertrigoServ/www
Khoá: SERVER_ADMIN giá trị: root@localhost
Khoá: SCRIPT_FILENAME giá trị: C:/Program Files/VertrigoServ/www/new/n1.php
Khoá: REMOTE_PORT giá trị: 3450
Khoá: GATEWAY_INTERFACE giá trị:CGI/1.1
Khoá: SERVER_PROTOCOL giá trị: HTTP/1.1
Khoá: REQUEST_METHOD giá trị: GET
Khoá: QUERY_STRING giá trị:
Khoá: REQUEST_URI giá trị: /new/n1.php
Khoá: SCRIPT_NAME giá trị: /new/n1.php
Khoá: PHP_SELF giá trị: /new/n1.php
Khoá: REQUEST_TIME giá trị: 1248597994
Khoá: argv giá trị: Array
Khoá: argc giá trị: 0
____________
Cái này ví dụ, để tham chiếu tới PHP_SELF thì ta làm theo cách của mãng kết hợp bình thường $_SERVER['PHP_SELF']
Một số phần tử mà mình thấy rất quan trọng:
PHP_SELF: trả về đường dẫn tới file đang chạy, tính từ thư mục gốc 
REQUEST_URI: tương tự như cái PHP_SELF, nhưng nếu đường dẫn có chứa tham số ( ?aaa=xxx...) thì nó trả về luôn mấy cái tham số đó.
SCRIPT_FILENAME: trả về đường dẫn đầy đủ
DOCUMENT_ROOT: trả về đường dẫn tới thư mục www càu host
***
Chú ý: đường dẫn ở đây không phải là đường dẫn với dạng tên miền nha mà là đường dẫn kiểu như các thư mục trong máy.

 

TỰ THIẾT LẬP HÀM

Vừa qua, ở bài nói về mảng chúng ta thấy có sự xuất hiện của một hàm có tên là count(hàm này trả về độ dài của mảng đó).
Trong PHP có rất nhiều những hàm dựng sẵn như thế, giúp ta giải quyết được nhiều tình huống trong lập trình web dễ dàng hơn.bên cạnh những hàm có sẵn đó, ta cũng có thể tự soạn thảo các hàm cho riêng mình.
Mục đích của việc tự soạn thảo các hàm là cho đỡ mõi tay, dễ hiệu chỉnh.
Các bạn hãy tưỡng tượng ta có một hành động A, hành động A là tập hợp bao gồm rất nhiều hành động khác.
Và trên cả trang web, ta biết rằng sẽ có nhiều hơn 3 lần ta thực hiện lại hành động A đó, vệc đưa hành động đó trỡ thành một hàm sẽ là một bước đi khôn ngoan và rất "lập trình viên".
________________________
Xét ví dụ bạn đơn giãn muốn in ra một nghìn câu:
Anh yêu em.
Mọi chuyện sẽ đơn giản hoá với vòng lặp (các bạn vẫn còn nhớ chứ).
for($i=0;$i<1001;$i++)
{
echo"<b>Anh yêu em</b><br />";
}
Nhưng mà sẽ khá dài cho trường hợp: 100 cấu Anh yêu em., tiếp theo lại là 1000 câu Em có yêu anh không!?, lại 1000 câu.......
Để khai báo hàm - function trong php ta có cú pháp như sau:
Mã nguồn:[Chọn]
function <tên hàm>()
{
//Nội dung các câu lệnh sẽ nàm trong hai dấu ngoặc nhọn này
}
Với ví dụ trên, mình sẽ viết một hàm có công dụng in ra 1000 câu Anh yêu em.như sau:
functionsayiloveyou()
{
for($i=0;$i<1001;$i++)
{
echo"<b>Anh yêu em</b><br />";
}
}
Mình đã đặt tên cho hàm này là hàm sayiloveyou và bất cứ khi nào, ở bất cứ đâu trên trang web, mình muốn in ra 1000 câu Anh yêu em.mình chỉ việc gọi hàm này (gọi nói nghe cho nó giống lập trình viên, chứ có nghĩa là viết nó ra thôi!)
<?php
functionsayiloveyou()
{
for($i=0;$i<1001;$i++)
{
echo"<b>Anh yêu em</b><br />";
}
}
sayiloveyou();
echo"Đẵ in ra 100 câu đầu tiên, không biết em có hiểu rõ tình cảm của anh chư, in tiếp<br />";
sayiloveyou();
?>
Hàmsayiloveyou()của chúng ta vừa mới viết, lại không giống như cái hàm count()đã nêu ra từ đầu bài ở chỗ hàm count nhận vào một tham số bên trong cặp dấu ngoặc, những bài tiếp theo của chúng ta sẽ nói về mấy cái mà mình gọi là "tham số" này.
À xin nói thêm, nếu có ai định dùng tin học để chinh phục nữa kia, thì các trên của mình còn dỡ lắm, mình nghĩ cách tốt nhất là học viết phần mềm, hay virus gì đó, chứ web thì hiệu quả không bàng.

 

 

HÀM VÀ THAM SỐ

Vấn đề để nãy sinh ra mấy cái tham số này là, có uổn quá không khi mỗi lần ghi là có 1000 câu giống nhau, 1000 lần thì nhiều thiệt, nhưng mà lại không có tác dụng đả kích mục tiêu, phải là 
1000 câu Anh yêu em.
rồi 1000 câu Em là mặt trời của anh.
rồi 1000 câu Anh phải đeo kính râm khi em hé môi cười.
thì may ra nàng còn say sẫm mặt mài.
Ta nhận thấy ngây bất cập, hàm được đặt ra để rút ngắn công việc, nhưng nếu cứ mỗi câu như thế mà viết một hàm thì nó chỉ làm mọi chuyện rắc rối thêm.
Và ý tưởng dẫn tới....
xem ví dụ:
functionsayiloveyou()
{
for($i=0;$i<1001;$i++)
{
echo"<b>Anh yêu em</b><br />";
}
}
Đó là đoạn code củ, sửa nó lại một chút, các bạn chú ý tới những điểm khác biệt nhé:
functionsayiloveyou($loinoi)
{
for($i=0;$i<1001;$i++)
{
echo$loinoi;
}
}
Mình đã thêm vào ở giữa 2 dấu ngoặc () một biến $loinoi, và ở dòng echo thay vì nội dung là câu nói thì nội dung ở đấy lại là biến $loinoi.
Để gọi hàm lúc này và in ra 1000 câu Anh yêu em.ta gọi như sau:
<?php
functionsayiloveyou($loinoi)
{
for($i=0;$i<1001;$i++)
{
echo$loinoi;
}
}
sayiloveyou("Anh yêu em.<br />");
?>
giải thích cho việc này chính là khi gọi hàm
sayiloveyou("Anh yêu em.<br />")
thì phần nội dung"Anh yêu em.<br />"được gán cho biến $loinoi khá là đơn giản [phải không mọi người.Ta cũng có thể viết một hàm với nhiều tham số nhận vào, ví dụ như ngoài việc tuỳ biến sẽ in ra cái chi, ta có thể tuỳ biếm thêm số lầm in ra.
functionsayiloveyou($loinoi,$solan)
{
for($i=0;$i<$solan;$i++)
{
echo$loinoi;
}
}
Khi gọi hàm này, ta lần lượt cho vào hai giá trị tương ứng theo đúng thứ tự:
sayiloveyou("Anh yêu em.<br />",999);
Cho tới lúc này thì để chinh phục cô ấy với cấu trúc hàm, mọi việc chỉ còn tuỳ thuộc vào ý tưởng của bạn nữa thôi nói đùa thế cho vui, chứ thật ra có một câu nói như thế này: Rào cản hiện thời không phải là công nghệ mà là ý tưởng.
Những kiến thức trên rất là cơ bản, nhưng lại nắm giữ những sức mạnh rất lớn.

 

 

BIẾN TOÀN CỤC VÀ BIẾN CỤC BỘ

Khái niệm biến toàn cục và biến cục bộ chắc các bạn cũng đã từng nghe qua, trong rất nhiều ngôn ngữ khác nhau. trong PHP cũng không loại trừ.
Khác biệt lớn nhất của biến toàn cục và biến cục bộ có thể thấy ngay ở các ví dụ về fuction. ta xét đoạn mã:bạn hãy chạy thử đoạn mã, chỉ có1 từ "Chữ viết" được in ra.
<?php
functionvietchu()
{
$chu="Chữ viết";
echo$chu;
}
vietchu();
echo$chu;
?>
Hàm vietchu() thực hiện 2 động tác: 1 gán chuỗi"Chữ viết"cho biến $chu, 2 in ra biến $chu
Vậy tại sao khi với dòng lệnh tiếp theo (echo$chu; ) lại không hề cho ra bất cứ kết quả nào?
Câu trả lời mà cho tới lúc này chắc các bạn ai cũng đoán được:
$chu chỉ là biến cục bộ, chỉ có hiệu lực bên trong hàm.
Việc người ta chế ra 2 loại biến này cũng có lý do, ví dụ như khỏi lo bị trùng các biến nếu trong cùng một file mà có nhiều hàm. Nhắm cái nào cần giữ giá trị lại thì giữ, đỡ tốn cấu hình.ở đây, nếu bạn muốn xác định biến nào sẽ là biến toàn cục thì hãy khai báo các biến đó sau từ khoá global
functionvietchu()
{
global$chu;
$chu="Chữ viết";
echo$chu;
}
và thêm một lưu ý, biến đã được gán giá trị bên ngoài, đưa vào trong hàm cũng không có giá trị (nói chung nếu mà không khai báo biến toàn cục thì "nội bất xuất, ngoại bất nhập".
Ví dụ:
<?php
$viet="Việt nam";
functionvietchu()
{
$chu="Chữ viết ".$viet;
echo$chu;
}
vietchu();
?>
hàm này chỉ in ra hàm chử viết, để có thể in ra nguyên câu :
Chữ viết Việt Nam
như ta mong muốn thì hãy khai báo biến toàn cục cho 
$viet="Việt nam";
functionvietchu()
{
global$viet;
$chu="Chữ viết ".$viet;
echo$chu;
}
Đây chỉ là một ví dụ đơn giản, trong thực tế, vấn đề này được dùng tới rất nhiều, trong thời gian và va chạm, bạn sẽ thấy cái gì càng cơ bản lại càng quan trọng.

 

PHP FUNCTION RETURN

lại bàn tới hàm count ở bài trước ta nhận thấy thêm một điều rằng hàm count trả về một giá trị số có thể đem ra tính toán luôn.
for($i=0;$i<count($mang);$i++)
{
echo$mang[$i]."<br />";
}
Hàm count không như các hàm mà ta đã tự viết từ trước đến giờ,nó chả đưa ra màn hình cái gì cả,mà trả về cho bản thân nó một giá trị. (Ở đây nếu bạn nào đã học qua pascal chắc chắn sẽ hiểu rất rỏ sự khác biệt giữa hàm và thủ tục).Ta cũng có thể làm được điều đó.Ví dụ, mình sẽ viết một hàm tính tổng hai số. hàm này nhận vào 2 tham số, tính tổng của chúng và trả về giá trị cho chính nó.
functiontonghaiso($a,$b)
{
$c=$a+$b;
return$c;
}
Dòng :return$c; là dòng quan trọng nhất bài này mà mình muốn nói tới, từ khoá return sẽ gán một giá trị nào đó cho hàm.
Hãy xét ví dụ tính toán này, các bạn sẽ hiểu rõ hơn!
<?php
functiontonghaiso($a,$b)
{
$c=$a+$b;
return$c;
}
echotonghaiso(3,5);
echo"<br />";
echotonghaiso(3,tonghaiso(3,5));
?>
Kết quả sẽ là:
8
17
11

 

GIAO TIẾP VỚI NGƯỜI DÙNG

 

GIAO TIẾP VỚI NGƯỜI DÙNG QUA PHƯƠNG THỨC GET

Giao tiếp ở đây đơn giản là nhận thông tin từ người dùng và xử lý chúng.
Nhận thông tin từ người dùng có2 cách chính:
1 Tạo những cái ô có thể điền thông tin vào, nút nhấn để gửi.
2 (nghe hơi lạ nhưng cũng là 1 cách) Bạn có 1 danh sách, người dùng muốn xem cụ thể cái gì thì click vào. Hành động click vào thể hiện lựa chọn của người dùng, cũng là một hình thức lựa chọn dữ liệu từ người dùng. Bài viết sẽ đề cập tới phương thức này.
Xử lý ở đây có rất nhiều ví dụ:
1 Bạn vào một diễn đàn - đăng nhập - lúc này mật khẩu bạn nhập (dữ liệu đầu vào) vào sẽ được so sánh với mật của bạn lúc đăng ký xem có trùng không - không trùng thì báo sai mật khẩu- đây cũng là 1 khâu xử lý.
2 Bạn vào một blog, forum gửi bài, nội dung bài viết, tiêu đề (dữ liệu đầu vào), bài viết được lưu ở đâu đó - đây cũng gọi là xử lý.
3 Cụ thể hơn, bạn viết 1 chương trình cho người dùng nhập vào 2 con số, tính tổng 2 số.
Code hoàn thiện ở cuối bài, tiếp theo đây là phần hướng dẫn.Tạo một biến $users là một mảng, chứa vài mảng nhỏ khác:Để hiểu thêm về mảng ở đây, mời các bạn đọc lại bài php mảng kết hợp.
Mã nguồn:[Chọn]
$users =array(
array('name' => 'Tuấn', 'gender'=> 'Nam', 'city' => 'Hồ Chí Minh'),
array('name' => 'Dung', 'gender'=> 'Nữ', 'city' => 'Hà Nội'),
array('name' => 'Trang', 'gender'=> 'Nữ', 'city' => 'Huế'),);
Ví dụ, ta muốn tìm ra thành phố của bạn tên "Dung" (Dung ở vị trí thứ 2 trong mãng $users nên có số thứ tự là 1)thì ta dùng code sau:
Mã nguồn:[Chọn]
echo $user[1]['city'];
Tiếp đến, để lựa chọn thông tin của ai sẽ được hiễn thị thì việc ta cần làm là giúp người dùng lựa chọn và nhận kết quả lựa chọn từ người dùng.
Để bắt đầu, bạn hãy tạo 1 file tên là php-get.php với nội dung như sau:
Mã nguồn:[Chọn]
<?php
echo$_GET['id'];
?>
Save file này lại và duyệt nó trên trình duyệt, ví dụ :
localhost/php-get.php?id=1
chú ý phần sau dấu"?"Bạn sẽ thấy nội dung trang là số 1, tương tự, hay thay đôi giá trị sau dấu "=". 
Giá trị sau dấu "=" sẽ là giá trị cuả biến mãng $_GET['id'].
$_GET đơn thuần chỉ là một mảng kết hợp, và các khóa là các tham số được gửi trên đường dẫn (trong truờng hợp này là ID).
Bạn có thể gửi kèm nhiều tham số cùng một lúc, ví dụ: hãy tạo một file mới với nội dung như sau:
Mã nguồn:[Chọn]
<?php
echo$_GET['id']
echo$_GET['name'];
?>
Save file này lại và duyệt nó trên trình duyệt, ví dụ :
localhost/php-get.php?id=1&]name=Trang/b]
Lúc này nội dung hiện ra sẽ là 1 Trang. Ta dùng dấu "&" ghép các tham số lại với nhau để truyền đi.
Hiện giờ các bạn đã nắm bắt được vấn đề. Để người dùng có thể chọn tên của bạn muốn hiễn thị thông tin cụ thể, ta in ra sẵn một danh sách với link có các tham số id=0, 1, 2...
Ta dùng Vòng lặp để in ra danh sách:
Mã nguồn:[Chọn]
for($i=0;$i<count($users);$i++)
{
echo '<li><a href="php-get.php?id='.$i.'">'.$users[$i]['name'].'</a></li>';
}
Để in ra giá trị của khóa city cho một bạn, ta dùng 1 code:
Mã nguồn:[Chọn]
echo $users[ $_GET['id'] ]['city'];
Ví dụ, khi ?id=1 thì đạon code trên sẽ được hiễu đơn giản là:
Mã nguồn:[Chọn]
echo $users[1]['city'];
Ta cần lưu ý một vấn đề:
Chuyện gì sẽ sảy ra nếu một người dùng vì lí do nào đó (tò mò - phá phác..) sửa lại đường dẫn như thế này :
localhost/php-get.php?id=5 hoặc
localhost/php-get.php?id=abc
Rõ ràng trong mảng $users của chúng ta chỉ có 3 phần tử, thay khóa bằng 5 hay abc đơn giản chẳng cho ta một kết quả gì.
Điều này không hề dơn giản và trong một vài trường hợp rất ư là nguy hiểm.
Ta hãy lấy một ví dụ chương trình tính giá trị a*b (a x b) với a, b được nhập từ người dùng qua phuơng thức GET.
Mã nguồn:[Chọn]
<?php
echo$_GET['a']*$_GET['b'];
?>
Để chạy chương trình tính toán, ta duyệt : localhost//php-get.php?a=3&b=5
Kết quả nhận được sẽ là 15. Bỏ bớt tham số b ra (localhost//php-get.php?a=3) kết quả bằng 0. Điều gì nguy hiểm trong trường hợp này? Bạn hãy tưởng tựợng a là số lượng mặt hàng, b là đơn giá và đây là trang dùng để bạn tính tiền. Thật không hay để một ai đó mua hàng trăm món đồ với giá 0 đồng.Để tránh việc này sảy ra, ta luôn phải kiểm tra dữ liệu từ người dùng! Và quả thật kiểm tra dữ liệu từ người dùng là công việc quan trọng bật nhất trong thiết kế web(cũng như bất kỳ phần mềm nào khác).
Ở đây mình chỉ xin trình bày cách kiểm tra xem a và b đã có giá trị hay chưa, chứ chưa tính tới việc có đúng kiểu giá trịnh hay chưa (trường hợp a,b được thay thế bằng chữ cái thì sao?)
Ta dùng hàm isset() đề kiểm tra.isset() - đọc là "is set" (tiếng anh ấy) - trà về đúng khi một biến đã được khai báo, ngược lại sai. và code kiểm tra của chúng ta như sau:
Mã nguồn:[Chọn]
Mã nguồn:[Chọn]
<?php
if(isset($_GET['a']) && isset($_GET['b']))
{
echo$_GET['a']*$_GET['b'];
}else{
echo'thieu du lieu dau vao';
}
?>
Lúc này nếu thử bỏ tham số hay hoặc b ra khỏi đường dẫn thì ta sẽ nhận được cảnh báo 'thieu du lieu dau vao' thay vì số 0.
Đây chỉ là một ví dụ để các bạn thấy được nguy cơ (thật ra khi làm trang bán hàng mà tính toán như thế thì dỡ lắm) và thực chất nguy cơ này rất lớn. Cụ thể nguy hiểm như thế nào chúng ta sẽ cùng tiềm hiểu ở cuối loạt bài về php và mysql. Còn về phần kiểm tra dự liệu người dùng nhập vào,chúng ta sẽ tiếp tục ngay sau bài nói về phương thức POST (GET và POST là hai anh em, hiểu GET rồi thì POST cũng dễ nuốt hơn phần nào)
Sau đây là full code, mời các bạn xem và ngâm cứu.
Mã nguồn:[Chọn]
<!DOCTYPE html>
<html id="demo-get" lang="en">
<head>
<meta charset=utf-8 />
<meta name="viewport" content="width=620" />
<title>Ví dụ phương thức GET trong PHP</title>
<head>
<body>
<table>
<tr>
<td>
<ul>
<?php
$users= array(
array('name'=>'Tuấn','gender'=>'Nam','city'=>'Hồ Chí Minh'),
array('name'=>'Dung','gender'=>'Nữ','city'=>'Hà Nội'),
array('name'=>'Trang','gender'=>'Nữ','city'=>'Huế'),);
for($i=0;$i<count($users);$i++)
{
echo'<li><a href="php-get.php?id='.$i.'">'.$users[$i]['name'].'</a></li>';
}
?>
</ul>
</td>
<td>
<?php
if(isset($_GET['id']) && isset($users[$_GET['id']]))
{
echo"Tên:".$users[$_GET['id']]['name']."<br />Giới tính:".$users[$_GET['id']]['gender']."<br />Thành phố:".$users[$_GET['id']]['city'];
}
?>
</td>
</tr>
</table>
</body>
</html>

 

GIAO TIẾP VỚI NGƯỜI DÙNG QUA PHƯƠNG THỨC POST

 

Bài trước đã hướng dẫn bạn cách giao tiếp với người dùng qua phương thức GET, bài này chúng ta làm quen với 1 phương thức phồ biến hơn POST 
Để dùng được POST bạn phải kết hợp với html form.
Nếu như với phương thức GET chúng ta truyền 1 tham số bằng cách ghi kèm tham số đó vào đường dẫn, thì với POST, chúng ta chỉ duy có 1 cách cơ bản nhấp là tạo một vài trường để người dùng điền thông tin vào và sau đó bấm gửi.
người dùng đang nhập vào bằng id và pass, nếu cả 2 trùng khớp sẽ hiện ra câu "xin chào <tên đầy đủ>";Đây là danh sách id,pass,fullname dùng trong ví dụ
Trích dẫn
nam, 123456, Hồ Thành Nam dung, 654321, Hà Nhuận Dung trang, abcdef, Đinh Hoàng Trang
Code hoàn thiện ở cuối bài, sau đây là phần hướng dẫn
Đầu tiên, tạo 1 cái tạo một file tênphp-post.php, nội dung file như sau:
Mã nguồn:[Chọn]
<!DOCTYPE html>
<html id="demo-get" lang="en">
<head>
<meta charset=utf-8 />
<meta id="viewport" content="width=620" />
<title>Ví dụ phương thức POST trong PHP </title>
<head>
<body>
<form action="php-post.php" method="get">
ID:<input type="text" name="id" /><br />
PASS:<input type="password" name="pass" /><br />
<input type="submit" name="submit" value="Gửi" /><br />
</form>
</body>
</html>
Điền nội dung bất kỳ vào 2 trường ID và pass, nhấn nút Gửi, bạn sẽ thấy 1 chuỗi các tham số xuất hiện (...php-post.php?id=.....&pass=.....&submit=Gửi)
Form trên (với thuộc tính method="get") đã khởi tạo cho chúng ta một chuỗi các tham số GET với khóa là giá trị của thuộc tính name[/name] của các trường input (chúng ta có thể lấy được những gì người dùng điền vào hai ô ID và PASS qua$_GET['id'] và $_GET['pass'])
Bây giờ hãy thừ đổi method="get"trong form thành method="post", bây giờ bạn hãy điền bất kỳ thông tin gìvào và nhấn nút gửi. Ta chú ý không hề có sự thay đồi của đường dẫn! Đó là cái hay của phương thức POST.
Lúc này đề sử dụng nội dung của người dùng đã điền vào 2 truờng ID và PASS, ta đơn giản truy xuất 2 biến mảng$_POST['id'] và $_POST['pass']. (phương thức GET thì ta có mãng $_GET, phương thức POST ta có mảng $_POST)
Rất đơn giàn để sữ dụng POST khi ta đã hiểu về GET
Phần giải thích về phuơng thức POST đã xong. 
Giờ xin trình bày chút về thuật giải của chuơng trình đăng nhập :
Dòng 15 - 19 : khởi tạo 1 mảng lớn, chứ 3 mảng nhỏ, mỗi mảng nhỏ là 1 mảng kết hợp gồm 3 khóa: id, pass, fullname
Dòng 21 : kiểm tra xem nút gửi có được nhấn chưa
Dòng 22 : khởi tạo biến $login mặt định = false, nếu sau khi kết thúc vòng lặp for mà nó vẫn giữ nguyên giá trị false có nghĩa là sai mật khẩu.
Dòng 23 - 29 : Chạy 1 vòng lặp từ đầu tới cuối mảng $users, so sánh giá trị của 2 trường id, paa của mỗi mảng nhỏ với giá trị của$_POST['id'] và $_POST['pass'] cứ thế lần luợt, nếu gặp 1 trường hợp mà cà 2 phép so sánh đều đúng, thay đổi giá trị của biến $Login lại thành trueFull :
Mã nguồn:[Chọn]
<!DOCTYPE html>
<html id="demo-get" lang="en">
<head>
<meta charset=utf-8 />
<meta id="viewport" content="width=620" />
<title>Ví dụ phương thức POST trong PHP </title>
<head>
<body>
<form action="php-post.php" method="post">
ID:<input type="text" name="id" /><br />
PASS:<input type="password" name="pass" /><br />
<input type="submit" name="submit" value="Gửi" /><br />
</form>
<?php
$users= array(
array('id'=>'nam','pass'=>'123456','fullname'=>'Hồ Thành Nam'),
array('id'=>'dung','pass'=>'654321','fullname'=>'Hà Nhuận Dung'),
array('id'=>'trang','pass'=>'abcdef','fullname'=>'Đinh Hoàng Trang'),);
if(isset($_POST['submit']))
{
$login=false;
for($i=0;$i<count($users);$i++)
{
if($users[$i]['id'] ==$_POST['id']&&$users[$i]['pass'] ==$_POST['pass'])
{
$login=true;$name=$users[$i]['fullname'];break;
}
}
if($login)
{
echo'Xin chào '.$name;
}else{
echo'Sai ID hoặc Pass!!!';
}
}
?>
</body>
</html>

 

 

 

 


Online Users
online counter

VISIT: 81679

TRỞ VỀ TRANG CHỦXẾP HẠNG QUỐC TẾ

Khi sử dụng các tài liệu trong trang wap này, xin vui lòng ghi rõ:
"từ http://vg34.wapath.com"
để người xem biết và có thể trở lại wapsite nguồn gốc tham khảo ý kiến khi cần thiết.



When using the document in this wap page, please specify:
"from http://vg34.wapath.com"
so that viewers know and be able to return wapsite sources consulted when necessary



GOOGLE INTERNATIONAL TRANSLATE
DỊCH TRANG WEB NÀY THEO NGÔN NGỮ TRONG KHUNG LỰA CHỌN BÊN TRÊN

KHI XEM TRANG WEB NÀY ĐỀ TÀI MÀ BẠN QUAN TÂM THEO DỎI LÀ GÌ?
chúng tôi sẽ bổ sung theo
nhu cầu của ban
  
pollcode.com free polls 

CHIA SẺ BÀI VIẾT NÀY VỚI MỌI NGƯỜI



NHẬP TỪ KHOA BẤT KỲ VÀO KHUNG BÊN DƯỚI ĐỂ TÌM CÁC NỘI DUNG TRONG TRANG WAP NÀY


CÁC TRÌNH DUYỆT ĐANG ONLINE
tại các trang nào trong wap?

NHẬN QUẢNG CÁO WAP TẠI TRANG CHỦ NÀY VÀ TẤT CẢ CÁC TRANG PHỤ TRÊN WAP NÀYMọi chi tiết xin liên hệ vg34dmv@gmail.com hay SMS +841207815475 (số máy này chỉ nhận được tin nhắn, không đàm thoại được)

GAMES HAY ĐÃ VIỆT HÓA
Hãy Download ngay
CLICK VÀO ĐÂY
Bạn sẽ được như ý...

Hãy Truy cập wapsite có từ năm 2009 với nội dung phong phú và liên kết trực tiếp với VG34
http://vvv6.xtgem.com

ĐẦU TRANG

THỐNG KÊ


TÌNH TRẠNG ONLINE HIỆN TẠI



TRỞ VỀ GIAO DIỆN XTGEM

web counter


ONLINE

online counter

Flag Counter


Online Users
online counter


SỐ TRUY CẬP RIÊNG TRANG NÀY
HÔM NAY: 21