Biến trong PHP

Cách chính để lưu trữ thông tin trong chương trình PHP là sử dụng một biến.

Dưới đây là những điều quan trọng nhất cần biết về biến trong PHP.

  • Tất cả các biến trong PHP được bắt đầu bằng ký hiệu $.
  • Giá trị của một biến là giá trị của phép gán gần đây nhất của nó.
  • Các biến được gán giá trị bằng toán tử =, với biến ở phía bên trái và biểu thức được đánh giá ở bên phải.
  • Các biến có thể được khai báo trước khi gán, nhưng không cần thiết.
  • Các biến trong PHP không có các kiểu nội tại (kiểu dữ liệu) - một biến không biết trước liệu nó sẽ được sử dụng để lưu trữ một số hay một chuỗi ký tự.
  • Các biến được sử dụng trước khi chúng được gán có giá trị mặc định.
  • PHP thực hiện tốt công việc tự động chuyển đổi kiểu dữ liệu từ kiểu này sang kiểu khác khi cần thiết.
  • Các biến PHP giống như Perl.

PHP có tám kiểu dữ liệu mà chúng ta sử dụng để xây dựng các biến của mình:

  • Integer - là số nguyên, không có dấu thập phân, ví dụ: 4195.
  • Double - là các số có dấu phẩy động, ví dụ: 3.14159 hoặc 49.1.
  • Boolean - chỉ có hai giá trị là true hoặc false.
  • NULL - là một kiểu đặc biệt chỉ có một giá trị: NULL.
  • String - là chuỗi các ký tự, ví dụ: 'PHP hỗ trợ các thao tác chuỗi.'
  • Array - là tập hợp các giá trị được đặt tên và lập chỉ mục.
  • Object - là các thể hiện của các lớp do lập trình viên định nghĩa, có thể chứa các loại giá trị và hàm dành riêng cho lớp.
  • Resource - là các biến đặc biệt chứa tham chiếu đến các tài nguyên bên ngoài PHP (như kết nối cơ sở dữ liệu).

Năm kiểu đầu tiên là các kiểu đơn giản và hai kiểu tiếp theo (mảng và đối tượng) là kiểu hỗn hợp - kiểu hỗn hợp có thể chứa các giá trị của các kiểu khác nhau, trong khi các kiểu đơn giản thì không thể.

Chúng ta sẽ tìm hiểu kiểu dữ liệu đơn giản trong chương này. Array và Object sẽ được trình bày ở một hướng dẫn khác.

Kiểu Integer trong PHP

Kiểu Integer trong PHP là các số nguyên, không có dấu thập phân, ví dụ: 4195. Chúng là kiểu đơn giản nhất. Chúng tương ứng với các số nguyên đơn giản, cả dương và âm.

Các số nguyên có thể được gán cho các biến hoặc chúng có thể được sử dụng trong các biểu thức, như dưới đây:

$int_var = 12345;
$another_int = -12345 + 12345;

Số nguyên có thể ở dạng thập phân (cơ số 10), bát phân (cơ sở 8) và định dạng thập lục phân (cơ sở 16).

Định dạng thập phân là mặc định, số nguyên bát phân được chỉ định bắt đầu bằng số 0 và hexadecimals bắt đầu bằng 0x.

Đối với hầu hết các nền tảng phổ biến, số nguyên lớn nhất là (2 ** 31. 1) (hoặc 2.147.483.647) và số nguyên nhỏ nhất (âm nhất) là. (2 ** 31. 1) (hoặc .2,147,483,647).

Kiểu Double trong PHP

Kiểu Double trong PHP là các số có dấu phẩy động, ví dụ: 3.14159 hoặc 49.1. Theo mặc định, hàm print sẽ chỉ in một chữ số ở sau dấu phẩy động của biến kiểu Double. Hãy xem ví dụ sau:

<?php
   $many = 2.2888800;
   $many_2 = 2.2111200;
   $few = $many + $many_2;
   
   print("$many + $many_2 = $few <br>");
?>

Đây là kết quả:

2.28888 + 2.21112 = 4.5

Kiểu Boolean trong PHP

Kiểu Boolean trong PHP chỉ có hai giá trị là true hoặc false. PHP cung cấp một vài hằng số đặc biệt để sử dụng như kiểu Booleans: TRUE và FALSE, có thể được sử dụng như dưới đây

if (TRUE)
   print("This will always print<br>");

else
   print("This will never print<br>");

Thông dịch các kiểu khác như Boolean

Dưới đây là các quy tắc để xác định giá trị Boolean của các kiểu dữ liệu khác:

  • Nếu giá trị là một số, nó là false nếu bằng 0 và ngược lại là true.
  • Nếu giá trị là một chuỗi, nó là false nếu chuỗi trống hoặc là chuỗi 0 và ngược lại là true.
  • Giá trị của kiểu NULL luôn luôn là false.
  • Nếu giá trị là một mảng, nó là false nếu nó không chứa các phần tử (mảng trống) và ngược lại là true.
  • Tài nguyên hợp lệ là true (mặc dù một số chức năng trả về tài nguyên khi chúng thành công sẽ trả về false khi không thành công).
  • Đừng sử dụng kiểu Double như Boolean.

Mỗi biến sau đây đã được gán giá trị có thể sử dụng trong ngữ cảnh Boolean.

$true_num = 3 + 0.14159;
$true_str = "Tried and true"
$true_array[49] = "An array element";
$false_array = array();
$false_null = NULL;
$false_num = 999 - 999;
$false_str = "";

NULL trong PHP

NULL là một kiểu đặc biệt chỉ có một giá trị: NULL. Để khai báo một biến giá trị NULL, chỉ cần gán nó như thế này:

$my_var = NULL;

Hằng số đặc biệt NULL được viết hoa theo quy ước, nhưng thực tế nó không phân biệt chữ hoa chữ thường; bạn cũng có thể sử dụng:

$my_var = null;

Một biến đã được gán NULL có các thuộc tính sau:

  • Nó trả về FALSE trong một ngữ cảnh Boolean.
  • Nó trả về FALSE khi được kiểm tra với hàm IsSet().

Kiểu String trong PHP

Kiểu String trong PHP là các chuỗi ký tự, ví dụ: "PHP hỗ trợ các thao tác chuỗi". Sau đây là các ví dụ hợp lệ của String:

$string_1 = "This is a string in double quotes";
$string_2 = 'This is a somewhat longer, singly quoted string';
$string_39 = "This string has thirty-nine characters";
$string_0 = ""; // a string with zero characters

Các chuỗi trong dấu nháy đơn là các chuỗi đơn thuần, trong khi các chuỗi trong dấu nháy đôi sẽ thay thế các biến bằng các giá trị của chúng và nó cũng biểu diễn các ký tự đặc biệt.

<?php
   $variable = "name";
   
   $literally = "My $variable will print!\n";   
   print($literally);
   
   $literally = 'My $variable will not print!\n';   
   print($literally);
?>

Đây là kết quả:

My name will print!
My $variable will not print!\n

Như bạn thấy ở ví dụ trên, chuỗi nằm trong cặp dấu nháy đơn không có bất kỳ xử lý gì với biến $variable và ký tự xuống dòng \n, nó xem chúng như là những ký tự bình thường.

Trong khi đó chuỗi nằm trong cặp dấu nháy kép sẽ thay thế biến $variable bằng giá trị của nó là "name" và hiển thị ký tự xuống dòng \n khi được in.

Không có giới hạn về độ dài chuỗi, bạn có thể tạo các chuỗi dài tùy ý miễn là trong giới hạn cho phép của bộ nhớ.

Các chuỗi được phân tách bằng dấu nháy kép được xử lý trước bởi PHP theo cả hai cách sau:

  • Một số ký tự bắt đầu bằng dấu gạch chéo ngược (\) được thay thế bằng các ký tự đặc biệt.
  • Tên biến (bắt đầu bằng $) được thay thế bằng giá trị của chúng.

Thay thế các ký tự đặc biệt như sau:

  • \n được thay thế bằng ký tự dòng mới.
  • \r được thay thế bằng ký tự trở lại đầu dòng.
  • \t được thay thế bằng ký tự tab.
  • \$ được thay thế bằng chính ký hiệu đô la ($).
  • \" được thay thế bằng một dấu nháy kép (").
  • \\ được thay thế bằng dấu gạch chéo ngược (\).

Heredoc trong PHP

Bạn có thể gán nhiều dòng cho một biến chuỗi bằng cách sử dụng cú pháp heredoc:

<?php
   $channel =<<<_XML_
   
   <channel>
      <title>What's For Dinner</title>
      <link>http://menu.example.com/ </link>
      <description>Choose what to eat tonight.</description>
   </channel>
   _XML_;
   
   echo <<<END
   This uses the "here document" syntax to output multiple lines with variable 
   interpolation. Note that the here document terminator must appear on a line with 
   just a semicolon. no extra whitespace!
   

   END;
   
   print $channel;
?>

Đây là kết quả:

This uses the "here document" syntax to output
multiple lines with variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!

<channel>
<title>What's For Dinner<title>
<link>http://menu.example.com/<link>
<description>Choose what to eat tonight.</description>

Phạm vi của biến trong PHP

Phạm vi có thể được định nghĩa là phạm vi tồn tại của một biến đối với chương trình mà nó được khai báo. Các biến PHP có thể là một trong bốn loại phạm vi sau:

  • Biến cục bộ.
  • Tham số của hàm.
  • Biến toàn cục.
  • Biến tĩnh.

Biến cục bộ trong PHP

Một biến được khai báo trong hàm được coi là biến cục bộ; do đó nó chỉ có thể được truy cập ở trong hàm đó.

Bất kỳ truy cập nào từ bên ngoài hàm đó sẽ được coi là một biến hoàn toàn khác với biến được khai báo trong hàm:

<?php
   $x = 4;
   
   function assignx () { 
      $x = 0;
      print "\$x inside function is $x. <br />";
   }
   
   assignx();
   print "\$x outside of function is $x. <br />";
?>

Đây là kết quả:

$x inside function is 0. 
$x outside of function is 4. 

Tham số của hàm trong PHP

Các tham số của hàm được khai báo bên trong dấu ngoặc đơn sau tên hàm. Chúng được khai báo giống như một biến thông thường như sau:

<?php
   // multiply a value by 10 and return it to the caller
   function multiply ($value) {
      $value = $value * 10;
      return $value;
   }
   
   $retval = multiply (10);
   Print "Return value is $retval\n";
?>

Đây là kết quả:

Return value is 100

Biến toàn cục trong PHP

Ngược lại với biến cục bộ là biến toàn cục, một biến toàn cục có thể được truy cập trong bất kỳ phần nào của chương trình.

Tuy nhiên, để có thể sửa đổi giá trị thì một biến toàn cục phải được khai báo rõ ràng là toàn cục trong hàm mà nó sẽ được sửa đổi.

Điều này được thực hiện bằng cách đặt từ khóa GLOBAL trước tên biến trong hàm. Hãy xem ví dụ sau:

<?php
   $somevar = 15;
   
   function addit() {
      GLOBAL $somevar;
      $somevar++;
      
      print "Somevar is $somevar";
   }
   
   addit();
?>

Đây là kết quả:

Somevar is 16

Biến tĩnh trong PHP

Ngược lại với các biến được khai báo là tham số hàm sẽ bị hủy khi thoát khỏi hàm, biến tĩnh sẽ không mất giá trị khi hàm thoát và vẫn giữ giá trị đó nếu hàm được gọi lại.

Bạn có thể khai báo một biến là tĩnh chỉ bằng cách đặt từ khóa STATIC trước tên biến.

<?php
   function keep_track() {
      STATIC $count = 0;
      $count++;
      print $count;
      print "<br />";
   }
   
   keep_track();
   keep_track();
   keep_track();
?>

Đây là kết quả:

1
2
3

Đặt tên biến trong PHP

Quy tắc đặt tên một biến là:

  • Tên biến phải bắt đầu bằng $ và tiếp theo là một chữ cái hoặc ký tự gạch dưới.
  • Tên biến có thể bao gồm số, chữ cái, dấu gạch dưới nhưng bạn không thể sử dụng các ký tự như +, -,%, (,). & , vân vân

Không có giới hạn kích thước cho các biến.



Bài viết liên quan:

Hướng dẫn lập trình PHP toàn tập sẽ giúp bạn từng bước tìm hiểu và nắm vững ngôn ngữ lập trình PHP.

Hướng dẫn cách truy xuất, lọc, sắp xếp dữ liệu MySQL trong PHP sử dụng MySQLi và PDO.

MySQL prepared statements trong PHP rất hữu ích để chống lại các cuộc tấn công SQL Injection.