Tâm trạng hàng ngày | Xí hổ 4-12-2011 10:40 PM |
|---|
Đã viết: 2 ngày [LV.1]Spam 1
|

Tác giả |
Đăng lúc 22-8-2008 01:48 PM
|
Xem tất
3.3 Tên biến:
Một biến có thể gắn với 1 cái tên .
VD:
PHP Code:
$a = "hello";
$$a = "world";
==> $hello = "world"
và
PHP Code:
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].
3.4 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
VD:
HTML Code:
<form action="foo.php3" method="post">
Name: <input type="text" name="name"><br>
<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:
HTML Code:
<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 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 thành dữ liệu của phương thức GET và POST.
Nếu bạn muốn có nhiều giá trị trong 1 cookie, chỉ cần thêm vào dấu [ ] với tên của cookie.
VD :
HTML Code:
SetCookie ("MyCookie[]", "Testing", time()+3600);
Chú ý rằng cookie sẽ thay thế cho cookie cùng tên, trừ trườg hợp khác đường dẫn hoặc miền.
BIẾN MÔI TRƯỜNG:
PHP tự động tạo biến cho các biến môi trường như 1 biến bình thường của PHP
VD :
PHP Code:
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Ấ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.(_)
4. CONSTANTS
PHP định nghĩa sẵn một vài hằng số:
_FILE_ : tên của script file đang được thực hiện.
_LINE_ : số dòng của mã script đang được thực hiện trong script file hiện tại.
_PHP_VERSION_ : version của PHP
_PHP_Ó : tên hệ điều hành mà PHP đang chạy
TRUE
FALSE
E_ERROR : báo hiệu có lỗi
E_PARSE : báo lỗi sai khi biên dịch
E_NOTICE : Một vài sự kiện có thể là lỗi hoặc không.
E_ALL :
Có thể định nghĩa một hằng số bằng hàm define()
VD :
PHP Code:
<?php
define("CONSTANT", "Hello world." ;
echo CONSTANT; // outputs "Hello world."
?>
5. 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ứ ban viết đều được coi như 1 biểu thức. Điều này có nghĩa là mọi thứ đều có 1 giá trị.
Một dạng cơ bản nhất của biểu thức bao gồmcá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.
Bạn có thể thao tác với các biến trong PHP giống như với trong C.
VD
PHP Code:
$b = $a = 5; /* assign the value five into the variable $a and $b */
$c = $a++; /* post-increment, assign original value of $a
(5) to $c */
$e = $d = ++$b; /* pre-increment, assign the incremented value of
$b (6) to $d and $e */
/* at this point, both $d and $e are equal to 6 */
$f = double($d++); /* assign twice the value of $d before
the increment, 2*6 = 12 to $f */
$g = double(++$e); /* assign twice the value of $e after
the increment, 2*7 = 14 to $g */
$h = $g += 10; /* first, $g is incremented by 10 and ends with the
value of 24. the value of the assignment (24) is
then assigned into $h, and $h ends with the value
of 24 as well. */
6.CÁC CẤU TRÚC LỆNH:
6.1 If ....else....else if:
if (điều kiện) { do something; }
elseif ( điều kiện ) { do something;}
else { do something;}
6.2 Vòng lặp :
PHP Code:
while ( DK) { ...}
do { .....} white ( DK );
for (bieuthuc1; bieuthuc2; bieu thuc3) {.....}
PHP 4 only :
PHP Code:
foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement
6.3 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.
6.4 switch
PHP Code:
switch (tên biến) {
case trường hợp 1: ..... break;
case trường hợp 2: ..... break;
case trường hợp 3: ..... break;
default :
}
7 HÀM:
Dùng giống với C++. Ngoại trừ bạn không cần phải khai báo kiểu cho tham số của hàm:
7.1 Tham trị :
VD:
PHP Code:
function takes_array($input) {
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
7.2 Tham biến:
PHP Code:
function add_some_extra(&$string) {
$string .= 'and something extra.';
}
7.3 Tham số có giá trị mặc định:
PHP Code:
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ố.
VD : Sai
PHP Code:
function makeyogurt ($type = "acidophilus", $flavour) {
return "Making a bowl of $type $flavour.\n";
}
Đúng
PHP Code:
function makeyogurt ($flavour, $type = "acidophilus" {
return "Making a bowl of $type $flavour.\n";
}
7.4 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ị.
VD
PHP Code:
function small_numbers() {
return array (0, 1, 2);
}
Để 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.
VD :
PHP Code:
function &returns_reference() {
return &$someref;
}
$newref = &returns_reference();
7.5 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
VD
PHP Code:
<?php
function foo() {
echo "In foo()<br>\n";
}
function bar( $arg = '' ) {
echo "In bar(); argument was '$arg'.<br>\n";
}
$func = 'foo';
$func();
$func = 'bar';
$func( 'test' );
?>
8. 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 va 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
VD:
PHP Code:
<?php
/* Intentional SQL error (extra quote): */
$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ư 1 lệnh shell. Trả ra giá trị là kết quả thực hiện lệnh
VD :
PHP Code:
$output = `ls -al`; //liệt kê các file bằng lệnh Linux
echo "<pre>$output</pre>";
9 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 Code:
<?php
class Cart {
var $items; // Items in our shopping cart
// Add $num articles of $artnr to the cart
function add_item ($artnr, $num) {
$this->items[$artnr] += $num;
}
// Take $num articles of $artnr out of the cart
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 bạn có thể tạo một biến có kiểu này với toán tử new
VD:
PHP Code:
$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.
VD :
PHP Code:
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àmkhở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,
10. THAM CHIẾU:
Tham chiếu trong PHP có nghĩa là lấy cùng 1 giá trị bằng nhiều tên biến khác nhau. Khác với con trỏ trong C, tham chiếu là một bảng các bí danh.
Chú ý : trong PHP, tên biến và nôi dung của biến là khác nhau. Vì vậy, cùng 1 nội dugn có thể có nhiều tên khác nhau.
Tham chiếu PHP cho phép bạn tạo 2 biến có cùng nôi dung.
VD :
PHP Code:
$a = & $b; -- > $a, $b trỏ tới cùng 1 giá trị.
Tham chiếu truỳen giá trị bằng tham chiếu. Thực hiện việc này bằng cách tạo một hàm cục bộ và truyền giá trị được tham chiếu
VD:
PHP Code:
function foo (&$var) {
$var++;
}
$a=5;
foo ($a);
--> Kết quả : $a = 6;
Giá trị trả lại của một hàm bằng tham chiếu rất tiện khi bạn muốn sử dụng hàm để tìm 1 giá trị trong 1 phạm vi nào đó.
VD :
PHP Code:
function &find_var ($param) {
...code...
return $found_var;
}
$foo =& find_var ($bar);
Khi bạn muốn loại bỏ mối liên kết giữa tên biến và giá trị của biến, sử dụng hàm unset()
VD :
PHP Code:
$a = 1;
$b =& $a;
unset ($a);
11. THAO TÁC VỚI ẢNH:
PHP không bị giới hạn với mã HTML được trả lại cho trình duyệt. Vì vậy, có thể dùng PHP để tạo và thao tác với các file ảnh có định dạng khác nhau, bao gồm :gif, png, jpg, wbmp, and xpm. PHP có thể đưa các file ảnh trực tiếp đến các trình duyệt. Bạn sẽ cần biên dịch PHP với thư viện GD bao gồm các hàm thao tác với ảnh. GD và PHP có thể sẽ cần có thêm 1 số thư viện khác, tuỳ thuộc vào định dạng của file ảnh cần dùng.
VD : Tạo ảnh GIF với PHP
PHP Code:
<?php
Header("Content-type: image/gif" ;
$string=implode($argv," " ;
$im = imagecreatefromgif("images/button1.gif" ;
$orange = ImageColorAllocate($im, 220, 210, 60);
$px = (imagesx($im)-7.5*strlen($string))/2;
ImageString($im,3,$px,9,$string,$orange);
ImageGif($im);
ImageDestroy($im);
?>
giả sử VD trên trong file button.php . KHi đó, để sử dụng ta dùng tag :
HTML Code:
<img src="button.php?text">. ,
12. MySQL và PHP
Để connect tới 1 CSDL trên MySQL server rất đơn giản. Bạn chỉ cần dùng hàm mysql_connect(host, user, password) để mở 1 kết nối tới MYSQL server với kết quả là giá trị trả về của hàm (Giả sử là biến $db).
Sau đó, dùng hàm mysql_select_db(database_name, link_id) để chọn CSDL bạn muốn kết nối.
Để thực hiện một câu lệnh truy vấn, dùng hàm mysql_query(query, link_ID). Giá trị trả lại của hàm là kết quả của câu truy vấn. Nếu bỏ qua link_ID thì kết nối cuối cùng tới MySQL server sẽ được thực hiện.
Bạn có thể xem ví dụ sau sẽ hiểu rõ hơn.
PHP Code:
<html>
<body>
<?php
$db = mysql_connect("localhost", "root" ;
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM employees",$db);
printf("First Name: %s<br>\n", mysql_result($result,0,"first" ;
printf("Last Name: %s<br>\n", mysql_result($result,0,"last" ;
printf("Address: %s<br>\n", mysql_result($result,0,"address" ;
printf("Position: %s<br>\n", mysql_result($result,0,"position" ;
?>
</body>
</html>
Ngoài cách dùng hàm mysql_result() để lấy kết quả thực hiện , bạn có thể dùng các hàm khác : mysql_fetch_row(), mysql_fetch_array(), and mysql_fetch_object().
* mysql_fetch_row($result) : trả về một mảng các dữ liệu lấy từ 1 dòng trong CSDL. Nếu đã ở cuối CSDL, giá trị trả về là false. Bạn phải dùng chỉ số của các trường trong CSDL nếu muốn lấy dữ liệu,
VD :
PHP Code:
<html>
<body>
<?php
$db = mysql_connect("localhost", "root" ;
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM employees",$db);
echo "<table border=1>\n";
echo "<tr><td>Name</td><td>Position</tr>\n";
while ($myrow = mysql_fetch_row($result)) {
printf("<tr><td>%s %s</td><td>%s</td></tr>\n", $myrow[1], $myrow[2], $myrow[3]);
}
echo "</table>\n";
?>
</body>
</html>
* mysql_fetch_array (int result [, int result_type]) : trả về một mảng chứa dữ liệu lấy từ 1 dòng trong CSDL. Tương tự như mysql_fetch_row() nhưng bạn có thể lấy trực tiếp tên trường để lấy dữ liệu.
VD : Cùng một CSDL như trên, bạn có thể thấy sự khác biệt
PHP Code:
<html>
<body>
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM employees",$db);
if ($myrow = mysql_fetch_array($result)) {
do {
printf("<a href=\"%s?id=%s\">%s %s</a><br>\n", $PHP_SELF, $myrow["id"], $myrow["first"], $myrow["last"]);
} while ($myrow = mysql_fetch_array($result));
} else {
echo "Sorry, no records were found!";
?>
</body>
</html>
*mysql_fetch_object : chuyển kết quả thành một đối tượng với các trường là các trường trong CSDL.
VD :
PHP Code:
<?php
mysql_connect ($host, $user, $password);
$result = mysql_db_query ("database", "select * from table");
while ($row = mysql_fetch_object ($result)) {
echo $row->user_id;
echo $row->fullname;
}
mysql_free_result ($result);
?> |
|