Saturday, September 8, 2007

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:


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.
";

}

assignx();

print "\$x outside of function is $x.
";
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 "
";

}

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 . Nó sẽ tự động in ra một chuỗi như sau:
PHPSESSID=07e935k3kkjr0986s9d89fr9trg8rgrg20

< a href=” mypage . php ? ”>Click my Page< / a >



No comments: