Hướng dẫn toàn tập về PHP và MySQL: Biến - giá trị

Chào những ai đang học PHP và MySQL cũng như muốn tìm hiểu để học PHP cơ bản,chúng ta tiếp tục với chương trình "Hướng dẫn toàn tập về PHP và MySQL". Hôm nay chúng ta tiếp tục tìm hiểu về Biến- giá trị:

BIẾN LÀ GÌ?

Ngay cái tên thôi mình cũng nghĩ đến cái gì đó biến đổi thường xuyên, một điều riêng duy nhất của biến là có-thể-thay-đổi-được! Nhưng cụ thể biến là gì ?
Một biến, là một thông tin được chứa tạm thời trong bộ nhớ, nó không tồn tại lâu. Biến (hay thông tin) trong PHP chỉ tồn tại trong thời gian server phát sinh trang web. Sau khi đã phát sinh xong trang web, tất cả các biến đều bị xóa đi vì chúng không còn dùng để làm gì nữa. Biến không phải như một file được chứa trong ổ cứng mà chỉ là một thông tin nhỏ tạm thời.
Chính bạn là người tạo ra biến khi cần dùng đến.
Một biến gồm 2 thành phần: Tên biến Giá trị của biến
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.

1 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á 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:

2 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. VD :
$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. VD ở 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.
VD :
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().

3 Tên biến:

Một biến có thể gắn với 1 cái tên .
VD:
$a = "hello";
$$a = "world";
==> $hello = "world"

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ự phân biệt rõ bằng dấu { }. VD :${$a[1]} hoặc ${$a}[1]. 

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:
<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 tùy 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:
<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ữ tọa độ 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 :
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.
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 :
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.(_)

Related Post

Next
Previous
Click here for Comments

0 nhận xét:



:)
:(
hihi
:-)
:D
=D
:-d
;(
;-(
@-)
:P
:o
:>)
(o)
[-(
:-?
(p)
:-s
(m)
8-)
:-t
:-b
b-(
:-#
=p~
$-)
(y)
(f)
x-)
(k)
(h)
(c)
cheer