Tài liệu hướng dẫn lập trình cơ bản về php
học lập trình |
I.PHP là gì?
PHP là một ngôn ngữ lập trình kiểu script, chạy trên Server và trả về mã HTML cho trình duyệt. PHP gần như đã trở thành một ngôn ngữ lập trình Web rất phổ biến trên mạng hiện nay. PHP là chữ viết tắt của cụm từ "PHP Hypertext Preprocessor", tạm dịch là ngôn ngữ tiền xử lí các siêu văn bản.
Các mã lệnh PHP được nhúng vào các trang web, các trang này thường có phần mở rộng là .php, .php3, .php4. Khi client gởi yêu cầu "cần tải các trang này về" đến web server, đầu tiên web server sẽ phân tích và thi hành các mã lệnh PHP được nhúng trong, sau đó trả về một trang web kết quả đã được xử lí cho client.
Bạn có thể hỏi, tại sau có nhiều tuỳ chọn như ASP, Cold Fusion, Perl, Java, Python nhưng chúng ta lại chọn PHP? Và câu trả lời là: bởi nó là một ngôn ngữ rất dễ dùng, dễ học, cú pháp lệnh đơn giản, các biến không cần phải khai báo trước khi dùng, tự động ép kiểu(typecast), chạy nhanh, tập hàm built-in rất phong phú, có mã nguồn mở…
II.Các cách làm việc với PHP:
Có 4 cách để dùng PHP:
i. <? echo ("this is the simplest, an SGML processing instruction\n"); ?>
ii. <?php echo("if you want to serve XML documents, do like this\n"); ?>
iii. <script language="php"> to have a U.
echo ("some editors don't like processing instructions");
</script>
iv. <% echo ("You may optionally use ASP-style tags"); %>
<%= $variable; # This is a shortcut for "<%echo .." %>
Cách i chỉ có thể sử dụng nếu những tag ngắn được cho phép sử dụng. Có thể sửa short_open_tag trong cấu hình của php hoặc biên dịch file .php với lựa chọn cho phép dùng các tag ngắn.
Tương tự như vậy, cách thứ iv chỉ có tác dụng nếu asp_tag được đặt trong file cấu hình của PHP.
III.Các kiểu dữ liệu:
PHP hỗ trợ tám kiểu dữ liệu nguyên thuỷ. Bốn kiểu thông thường là: boolean, integer, floating-point number(float), string. Hai kiểu phức tạp là: mảng( array) và đối tượng ( object). Và cuối cùng là hai kiểu đặc biệt : resource và NULL. Loại dữ liệu của biến thông thường không được gán bởi người lập trình mà được quyết định tại thời gian chạy của PHP, phụ thuộc vào ngữ cảnh mà biến được dùng.
1. Boolean: đây là kiểu đơn giản nhất. Một kiểu boolean biểu thị một giá trị thật. Nó có thể là TRUE hay FALSE.
Cú pháp: để chỉ định một giá trị boolean, có thể sử dụng từ khoá TRUE hay là FALSE. Cả hai đều không phân biệt chữ hoa hay chữ thường.
Ví dụ: $foo=True; // gán giá trị TRUE cho biến $foo.
Để có thể chuyển một giá trị sang kiểu boolean, chúng ta có thể dùng (bool) hay (boolean). Tuy nhiên trong hầu hết các trường hợp bạn không cần phải sử dụng việc ép kiểu này, bởi giá trị sẽ được tự động chuyển nếu nó là một toán tử, hàm hay là cấu trúc điều khiển đòi hỏi một tham số kiểu boolean.
Chú ý: -1 được xem là TRUE, giống như các giá trị khác 0 khác ( bất kể là số dương hay âm).
2. Integer: là một tập hợp bao gồm các số {...,-2,-1,0,1,2,...}.
Cú pháp: Integer có thể được chỉ định trong cơ số 10, cơ số thập lục phân hay cơ số bát phân, tuỳ chọn đi trước bởi dấu - hay +. Nếu bạn sử dụng với cơ số bát phân, bạn phải theo thứ tự với 0 đứng trước, còn đối với số thập lục phân thì 0x.
Ví dụ như sau:
$a = 1234; # số thập phân
$a = -123; # số âm
$a = 0123; # số bát phân
$a = 0x1A; # số thập lục phân
Kích thước của kiểu dữ liệu này là 32bit, và PHP không hỗ trợ kiểu unsigned integer. Nếu bạn chỉ định một số vượt qua biên của kiểu dữ liệu integer, nó sẽ được xem như kiểu float. Tương tự như vậy, khi bạn thực hiện một phép toán mà kết quả trả về là một số vượt qua biên của kiểu integer, thì kiểu float sẽ được trả về. Tuy nhiên, có một lỗi trong PHP mà không phải bao giờ điều này cũng đúng, nó liên quan đến các số âm. Chẳng hạn, khi bạn thực hiện -50000* $million, kết quả sẽ là 429496728. Tuy nhiên, khi cả hai toán tử đều là số dương thì không có vấn đề gì xảy ra.
Để chuyển một giá trị sang kiểu integer, ta có thể dùng toán tử ép kiểu (int) hay (integer). Tuy nhiên, trong hầu hết các trường hợp bạn không cần phải dùng toán tử ép kiểu đó, bởi giá trị sẽ được tự động chuyển sang nếu toán tử, hàm hay cấu trúc điều khiển đòi hỏi một đối số integer.
3. Kiểu số thực (floats,doubles,hay real numbers): có thể được chỉ định bằng cách sử dụng một trong các cú pháp sau:
$a = 1.234; $a = 1.2e3; $a = 7E-10;
Kích cỡ của kiểu float tùy thuộc vào platform, giá trị lớn nhất là xấp xỉ 1.8e308
4. String: là những chuỗi các kí tự.Trong PHP,một kí tự cũng tương tự như một byte,do đó có chính xác 256 kí tự khác nhau.
Cú pháp: có thể khai báo bằng ba cách khác nhau như sau:
· Dấu nháy đơn: cách dễ dàng nhất để chỉ định một chuỗi đơn giản là đóng nó trong một dấu nháy đơn.Ví dụ:echo 'le bao vy';
· Dấu nháy kép: nếu chuỗi được đóng trong dấu nháy kép("),PHP hiểu sẽ có thêm các chuỗi cho các kí tự đặc biệt ..... Ví dụ: \n;\t;\\;\$;…
· Heredoc: các khác để phân định chuỗi là sử dụng cú pháp ("<<<"). Chỉ nên cung cấp một định danh sau <<<, sau đó là chuỗi và tiếp là cùng tên định danh để đóng dấu nháy. Định danh dùng để đóng phải bắt đầu bằng cột đầu tiên của dòng. Định danh được dùng phải có tên giống như trong các quy luật đặt tên biến trong PHP.
5. Mảng : là một danh sách các phần tử có cùng kiểu dữ liệu.Mảng có thể là mảng một chiều hay nhiều chiều.
· Mảng một chiều có chỉ mục: là mảng được quản lý bằng cách sử dụng chỉ số dưới kiểu integer để biểu thị vị trí của giá trị yêu cầu.Cú pháp: $name[index1];
Ví dụ: một mảng một chiều có thể được tạo ra như sau:
$meat[0]="chicken";
$meat[1]="steak";
$meat[2]="turkey";
Nếu bạn thực thi dòng lệnh sau: print $meat[1]; thì trên trình duyệt sẽ hiển thị dòng sau: steak.
Bạn cũng có thể sử dụng hàm array( ) của PHP để tạo ra một mảng.Ví dụ:
$meat=array("chicken","steak","turkey");
· Mảng một chiều kết hợp: rất thuận lợi khi dùng để ánh xạ một mảng sử dụng các từ hơn là sử dụng các integer, nó giúp ta giảm bớt thời gian và các mã yêu cầu để hiển thị một giá trị cụ thể. Ví dụ: bạn muốn ghi lại tất cả các thức ăn và các cặp rượu ngon.
$pairings["zinfandel"] = "Broiled Veal Chops";
$pairings["merlot"] = "Baked Ham";
$pairings["sauvignon"] = "Prime Rib";
Một cách khác là bạn có thể sử dụng hàm array( ) của PHP để tạo ra một mảng loại này, ví dụ như sau:
$pairings = array( zinfandel => "Broiled Veal Chops",
merlot => "Baked Ham",sauvignon => "Prime Rib",
sauternes => "Roasted Salmon";
· Mảng nhiều chiều có chỉ mục: chức năng của nó cũng giống như mảng một chiều có chỉ mục, ngoại trừ việc nó có thêm một mảng chỉ mục được dùng để chỉ định một phần tử. Cú pháp: $name[index1] [index2]..[indexN];
Một mảng hai chiều có chỉ mục được tạo ra như sau:
$position = $chess_board[5][4];
· Mảng đa chiều kết hợp: khá hữu ích trong PHP. Giả sử bạn muốn ghi lại các cặp rượu-thức ăn, không chỉ loại rượu, mà cả nhà sản xuất. Bạn có thể thực hiện như sau:
$pairings["Martinelli"] ["zinfandel"] = "Broiled Veal Chops";
$pairings["Beringer"] ["merlot"] = "Baked Ham";
$pairings["Jarvis"] ["sauvignon"] = "Prime Rib";
6. Object: bạn có thể xem object như là một biến mà minh hoạ một kiểu mẫu template được gọi là class. Khái niệm của đối tượng và lớp được sử dụng nhiều trong ngôn ngữ lập trình hướng đối tượng OOP. Không giống như các kiểu dữ liệu khác trong PHP, object phải được khai báo.Điều quan trọng là phải nhận ra rằng object không hơn gì một minh hoạ của một lớp, và hoạt động như là một khuôn mẫu cho việc tạo các object có các đặc tính và chức năng cụ thể. Cho nên, lớp(class) phải được định nghĩa trước khi khai báo một object. Để khởi tạo một đối tượng, bạn sử dung câu lệnh new để minh hoạ đối tượng với một biến.Ví dụ:
<?php
class foo{
function do_foo(){
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
?>
7. Resource: là một biến đặc biệt, chứa một tham chiếu đến một resource bên ngoài. Các resource được tạo ra và sử dụng bởi các hàm đặc biệt.
Giải phóng resources: bởi do tham chiếu đếm của hệ thống được giới thiệu trong PHP4 Zend-engine, nó sẽ tự động phát hiện khi một resource không cần thiết cho lâu dài. Khi ở trong trường hợp này, tất cả các resource mà đã được dùng cho resource này được giải phóng bởi "bộ phận thu nhặt rác". Do đó, hiếm khi thật sự cần thiết để giải phóng bộ nhớ thông thường bằng cách sử dụng hàm free_result().
8. NULL: giá trị NULL đặc biệt dùng để thể hiện một biến không có giá trị. Một biến được xem là NULL nếu:
o Nó được gán giá trị hằng số NULL.
o Nó chưa được khởi tạo giá trị nào.
o Nó là hàm unset( )
Chú thích: unset () là một hàm dùng để hủy bỏ các biến chỉ định.
Cú pháp: chỉ có một loại giá trị của kiểu NULL. Bạn có thể khai báo như ví dụ sau: $var=NULL;
IV.Biến trong PHP:
Biến trong PHP được thể hiện bởi dấu dollar $ và theo sau là tên của biến. Tên biến không phân biệt chữ hoa hay chữ thường. Tên biến phải bắt đầu bằng một chữ cái hay một dấu gạch nối_, theo sau là các chữ cái, chữ số hay là dấu gạch nối. Ví dụ:
var = "Bob";
$Var = "Joe";
echo "$var, $Var";
Trong PHP3 thì các biến phải luôn luôn được gán giá trị. Còn trong PHP4 thì cung cấp thêm một cách khác để gán giá trị cho biến: gán theo tham chiếu. Điều này có nghĩa là một biến mới có thể tham chiếu đến một biến nguyên thuỷ. Sự thay đổi của biến mới sẽ tác động đến biến nguyên thuỷ và ngược lại. Nó cũng có nghĩa là không có sao chép, do đó việc kết gán sẽ diễn ra nhanh hơn. Để thực hiện gán bằng tham chiếu, chỉ cần thêm & ở đầu tên của biến được gán.Ví dụ sau sẽ in ra dòng 'My name is Bob' hai lần:
<?php
$foo = 'Bob'; // gán giá trị 'Bob' cho $foo
$bar = &$foo; // Tham chiếu $foo qua $bar.
$bar = "My name is $bar"; // thay đổi $bar...
echo $bar;
echo $foo; // $foo cũng bị thay đổi.
?>
Phạm vi của biến: Các biến trong PHP có thể là một trong bốn loại phạm vi sau:
§ Biến cục bộ.
§ Tham số các hàm.
§ Biến toàn cục.
§ Biến static.
1) Biến cục bộ: Một biến được khai báo trong một hàm thì được xem như là một biến cục bộ và nó chỉ được tham chiếu trong hàm đó. Bất kể việc gán giá trị bên ngoài hàm đều xem như là biến hoàn toàn khác với biến trong hàm đó. Chú ý khi thoát khỏi hàm mà biến cục bộ được khai báo, thì biến và giá trị của nó sẽ bị huỷ bỏ. Biến cục bộ có thuận lợi bởi nó loại bỏ những khả năng của các tác động không dự đoán được làm thay đổi kết quả từ các biến có thể truy cập toàn cục.Ví dụ:
$x = 4;
function assignx () {
$x = 0;
print "\$x inside function is $x. <br>";
}
assignx();
print "\$x outside of function is $x. <br>";
Sau khi thực hiện sẽ có các kết quả như sau:
$x inside function is 0.
$x outside of function is 4.
2) Tham số của hàm: cũng giống như nhiều ngôn ngữ lập trình khác, trong PHP hàm có chứa tham số phải khai báo các tham số trong phần đầu của hàm. Mặc dầu, những tham số này nhận các giá trị đến từ bên ngoài hàm, nhưng chúng sẽ chỉ có thể truy cập một khi hàm tồn tại. Các tham số của hàm được khai báo sau tên hàm và bên trong dấu {. Ví dụ:
function x10 ($value) {
$value = $value * 10;
return $value;}
Điều quan trọng cần phải chú ý là mặc dầu bạn có thể truy cập và thao tác với các tham số trong hàm mà nó được khai báo, nhưng nó sẽ bị huỷ bỏ khi hàm kết thúc thực hiện.
3) Biến toàn cục: ngược lại với biến cục bộ, biến toàn cục có thể được truy cập từ bất cứ phần nào trong chương trình .Tuy nhiên, để có thể chỉnh sửa, biến toàn cục phải được khai báo toàn cục trong hàm mà nó được chỉnh sửa. Để khai báo một biến là toàn cục ta đặt từ khoá GLOBAL ở phía trước.Ví dụ:
$somevar = 15;
function addit() {
GLOBAL $somevar;
$somevar++;
print "Somevar is $somevar";
}
addit();
Kết quả của $somevar là 16. Tuy nhiên, nếu bạn bỏ dòng lệnh GLOBAL $somevar; thì biến $somevar sẽ chỉ có giá trị là 1, bởi biến $somevar được xem như là biến cục bộ trong hàm addit( ).
Một cách khác để khai báo một biến là toàn cục là sử dụng mảng $GLOBALS của PHP. Ví du, khai báo biến $somevar là toàn cục bằng cách sử dụng mảng này:
$somevar = 15;
function addit() {
$GLOBALS["somevar"];
$somevar++;
}
addit();
print "Somevar is $somevar";
4) Biến static: tương phản với các biến được khai báo trong các tham số của hàm sẽ bị huỷ bỏ khi thoát khỏi hàm, biến static sẽ không mất giá trị của nó khi thoát khỏi hàm và sẽ giữ nguyên giá trị đó khi hàm được gọi lại lần nữa. Bạn có thể khai báo một biến là static bằng cách dùng từ khoá STATIC đặt trước tên biến.
Ví dụ:
function keep_track() {
STATIC $count = 0;
$count++;
print $count;
print "<br>";
}
keep_track();
keep_track();
keep_track();
Kết quả là :
1
2
3
Truy cập biến từ trình duyệt:
Khi dùng PHP, cũng như các phần mềm trung gian khác, thông tin được cung cấp tuỳ chọn dựa vào tham chiếu người dùng. Dĩ nhiên thông tin sẽ đến thông qua “form”. Thông tin cũng có thể đến từ những nơi khác, như “cookie” hay “sessions”.
a.Biến form:
Một trong những cách phổ biến là chuyển biến thông qua “form”. Mỗi thành phần trong form của chúng ta sẽ được gán tên và thuộc tính giá trị. Khi form được “submit” thì name=value sẽ được chuyển đến PHP. Chúng ta có thể chuyển đến PHP bởi phương pháp GET hoặc POST, tùy thuộc chúng ta chọn gì trong thuộc tính hành động của “form”. Một khi form được “submit”, những thành phần của form sẽ tự động trở thành những biến toàn cục trong PHP.
b.Sessions:
PHP cũng giống như ASP và ColdFusion đều hỗ trợ sessions. Vậy sessions là gì? Về cơ bản nó là một cách khác để duy trì trạng thái giữa các trang Web. Chúng ta bắt đầu một sessions bởi hàm start_session(). Khi đó PHP sẽ đăng ký một session ID duy nhất và gửi session ID đó về cho người dùng thông qua cookie. PHP sẽ tạo những tệp đáp trả trên server để có thể lưu giữ dấu vết của bất kỳ biến nào. Những tệp này có cùng tên với session ID.
Một khi session được tạo chúng ta có thể đăng ký bất kỳ biến số nào. Giá trị của nó sẽ được giữ trên một tệp ở máy chủ. Và như vậy trong thời gian sống của session những biến này sẽ được thực hiện bởi bất cứ trang nào trong cùng một tên miền mà không cần truy cập đến chúng.
Tuy nhiên có một số người dùng không cho phép cookie, khi đó PHP giữ dấu vết các session ID qua các querystring. Chúng ta có thể làm điều này bằng tay bằng cách cho sessiong ID phụ thuộc queryString, hoặc thay đổi tuỳ chọn cấu hình. Để thêm session Id đến querystring, ta dùng <?=SID?>. Nó sẽ tự động in ra một chuỗi như sau: PHPSESSID=07e935k3kkjr0986s9d89fr9trg8rgrg20
<a href=”mypage.php?<?=SID?>”>Click my Page</a>
Đoạn mã sau sẽ đăng ký một session ID và gán cho nó giá trị là: hello world
<?php
session_start();
session_register(“my_var”);
$my_var=”hello world”;
?>
c.Cookies:
Cookies là một mẩu thông tin nhỏ được lưu trữ trên máy tính người dùng. Một cookies chứa một đoạn văn bản nhỏ có thể đọc bởi máy chủ Web. Cookies cung cấp cách để có thể giữ dấu vết người sử dụng thông qua một số dịch vụ. Chúng ta phải nhớ rằng Web là môi trường trạng thái. Máy chủ Web sẽ không biết ai yêu cầu thông tin, cookies sẽ giúp chúng ta giữ thông tin người dùng khi họ di chuyển quanh site. Khi họ tồn tại , cookies trở thành một phần của yêu cầu HTTP gửi đến cho máy chủ Web. Những trước hết chúng ta cần thiết lập một cookies. Những người phát triển sẽ làm điều này, giống như mọi thứ khác trong PHP, chúng rất đơn giản. Dùng hàm setcookie() với những tham số theo sau:
setcookie(name, value, time_to_expire, path, domain, security setting);
Vi dụ:
setcookie(“mycookie”, “my_id”, time()+ (60*60*24*30),”/”,”.mydomain.com”,0)
Cookie này thiết lập những tham số như sau:
o Lưu trữ tên biến có tên là mycookie.
o Giá trị của biến là my_id.
o cookie có giá trị 30 ngày kể từ ngày thiết lập.
o cookie có hiệu lực trong mọi trang của domain.
o Nó có hiệu lực trong mọi chỗ của tền miền mydomain.com
o Không có thiết lập an toàn đặc biệt
V.Hằng số (Constant):
Hằng là một giá trị không thể chỉnh sửa được thông qua việc thực hiện chương trình. Bạn có thể định nghĩa một hằng bằng cách dùng hàm define( ). Một khi hằng được định nghĩa, nó không bao giờ bị thay đổi.
Chỉ có các kiểu dữ liệu boolean, integer, float, string mới có thể chứa các hằng. Bạn có thể nhận giá trị của một hằng bằng cách đơn giản chỉ định tên của nó. Không giống như với biến, bạn không cần khai báo $ trước một hằng. Bạn cũng có thể dùng hàm constant(), để đọc giá trị của hằng. Sử dụng hàm get_defined_constants( ) để nhận một danh sách tất cả các hàm đã được định nghĩa.
Các hằng được định nghĩa trước: PHP cung cấp một lượng lớn các hằng đã được định nghĩa trước để bất kỳ script nào cũng có thể chạy được.
Một số tin tức khác:
0 nhận xét:
Đăng nhận xét