|
Tác giả: koala
Nguồn: vncoder.net
I.Lí thuyết căn bản
1. Php là gì?
- PHP (Peronal Home Page)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.
Mã lệnh <html>
<head>
<title>Example</title>
</head>
<body>
<?php echo "Hi, I'm a PHP script!"; ?>
</body>
</html/>
?>
- Mã PHP được đặt trong kiểu tag đặc biệt cho phép ta có thể vào hoặc ra khỏi chế độ PHP
2. Cài đặt như thế nào?
Xem bài cài đặt của Hải Nam tại đây
II.Ngôn ngữ PHP:
Có 4 cách để dùng PHP:
Mã lệnh (php) <? echo ("this is the simplest, an SGML processing instruction\n"); ?>
Mã lệnh (php) <?php echo("if you want to serve XML documents, do like this\n"); ?>
Mã lệnh (html) <script language="php">echo ("some editors (like FrontPage) don't
like processing instructions");
</script>
Mã lệnh (php) <% echo ("You may optionally use ASP-style tags"); %>
<%= $variable; # This is a shortcut for "<%echo .." %>
- Cách 1 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ứ 4 chỉ có tác dụng nếu asp_tag được đặt trong file cáu hình của PHP
- PHP cho phép hử trợ các kiểu chú thích của cả C, C++ và Unix shell.
Mã lệnh (php) <?php echo "This is a test"; // This is a one-line c++ style comment
/* This is a multi line comment
yet another line of comment */
echo "Another Test"; # This is shell-style style comment ?>
Các kiểu dữ liệu
1.Số nguyên
Mã lệnh (php) $a = 1234; # decimal number
$a = -123; # a negative number
$a = 0123; # octal number (equivalent to 83 decimal)
$a = 0x12; # hexadecimal number (equivalent to 18 decimal)
2.Số thực
Mã lệnh (php) $a = 1.234; $a = 1.2e3;
Chú ý: Khi sử dụng các 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.
3.Xâu
- 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.
4.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.
a. 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 iử 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. --> Dùng giống trong C
- Có thể dùng các hàm asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), and uksort() để sắp xếp mảng. Tuỳ thuộc vào việc bạn định sắp xếp theo kiểu gì.
b. Mảng nhiều chiều:
Mã lệnh (php) $a[ 1] = $f; # one dimensional examples
$a["foo"] = $f;
$a[ 1][0] = $f; # two dimensional
$a["foo"][ 2] = $f; # (you can mix numeric and associative indices)
$a[ 3]["bar"] = $f; # (you can mix numeric and associative indices)
- PHP3 không thể tham chiếu trực tiếp từ một mảng nhiều chiếu khi ở bên trong 1 xâu.
Mã lệnh (php) $a[ 3]['bar'] = 'Bob';
echo "This won't work: $a[ 3][bar]";
- Kết quả trả ra sẽ là: This won't work: Array[bar].
- Nhưng với VD sau sẽ chạy đúng:
Mã lệnh (php) $a[ 3]['bar'] = 'Bob';
echo "This will work: " . $a[ 3][bar];
- Với PHP4, vấn đề sẽ được giả quyết bằng cách cho mảng vào giữa 2 dấu ngoặc móc{}
- PHP không yêu cầu phải khai báo trước kiểu dữ liệu cho các biến, Kiểu dữ liệu của biến sẽ phụ thuộc vào kiểu dữ liệu mà bạn gán cho nó.
Mã lệnh (php) $foo = "0"; // $foo là kí tự ASCII 48
$foo++; // $foo is xâu "1" (ASCII 49)
$foo += 1; // $foo là số nguyên (2)
$foo = $foo + 1.3; // $foo là số thực (3.3)
$foo = 5 + "10 Little Piggies"; // $foo là số nguyên (15)
5.Biến - 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ố đựoc 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á trj.
- 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?>
- HTTP_POST_VARS
b.Phạm vi giá trị:
- 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.
Mã lệnh (php) $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 dung mảng $GLOBAL của PHP
Mã lệnh (php) $a = 1;
$b = 2;
Function Sum () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["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.
Mã lệnh (php) 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
Mã lệnh (php) $a = "hello";
$$a = "world";
==> $hello = "world"
- và
Mã lệnh (php) 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 . VD : $$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ựu phân biệt rõ bằng dấu {}. VD :${$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
Mã lệnh (html) <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 truờ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 1 form. - Vì vậy, bạn 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ừ 1 đầ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ừ 2 mảng toàn cục $HTTP_POST_VARS và $HTTP_GET_VARS
- IMAGE SUBMIT:
- Khi dùng 1 image để thực hiện submit, có thể dùng tag như sau:
Mã lệnh (html) <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 2 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.
- 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. --
Được sửa chữa bởi ulego ngày 18/12/04 09:08 (sửa lần 4)
|