Biến trong PHP

Biến trong PHP là bài viết hướng dẫn cách sử dụng biến trong php như khai báo biến, hiện giá trị của biến, tầm vực của biến…


Biến trong PHP


Biến là gì

Trong lập trình, bạn cần 1 nơi để chứa các giá trị dùng trong tính toán, đó là biến. Biến sau khi tạo xong có thể gán giá trị khác nhau cho nó.

  • Biến trong php bất đầu bằng dấu $, sau dấu $ là tên của biến. 
  • Tên biến phải bắt đầu với ký tự a-z hoặc dấu _  .  Tên biến không được bắt đầu là số.
  • Tên biến có phân biệt chữ hoa chữ thường, nghĩa là biến $dtb và $Dtb là khác nhau. 

Ví dụ khai báo biến trong php

<?php //v1.php
  $hocluc = "Giỏi";
  $toan = 9;
  $dtb = 8.5;
?>

Không cần khai báo kiểu dữ liệu cho biến. Khi cần lưu một chuỗi vào biến, bạn đặt chuỗi trong dấu nháy đơn hoặc nháy kép. Còn nếu cần lưu số thì cứ gán số, số thực thì dùng dấu chấm. Xem ví dụ trên.

Xuất giá trị của biến trong php

Giá trị của biến thì nằm trong bộ nhớ RAM, nên người dùng không thấy. Muốn hiện giá trị của biến ra trang web thì dùng lệnh echo hoặc lệnh print hoặc dùng cú pháp  <?=$tênbiến?> . Khi xuất giá trị của biến, có thể đặt trong các tag mà bạn muốn. Mời xem các ví dụ sau:

Lệnh echo để xuất giá trị của biến

<?php //v1.php
   $hocluc = "Giỏi";
   echo $hocluc; //Giỏi
?>

Dùng lệnh print để xuất giá trị của biến

Lệnh print cũng xuất giá trị biến cho bạn .

<?php $sothich = 'Nhìn mưa rơi'; ?>
<h4> <?php print $sothich; ?> </h4>

Xuất biến dùng cú pháp <?= $tênbiến ?>

Đây là cách ngắn gọn nhất để hiện giá trị của biến ra trang web.

<!-- v1.php -->
<style> #d1 { color: red; font-size: 34px;} </style>
<?php $metoi = 'Mẹ tôi hai tiếng thân thương'; ?>
<div id="d1"> <?=$metoi?> </div>

Xuất giá trị biến trong các chuỗi

Có thể đặt biến bên trong các chuỗi nháy kép để đưa giá trị của biến ra. Biến  chuỗi phải dùng nháy kép chứ không dùng nháy đơn nhé.

<?php $tensp='HP 15s I3 512GB 8GB';  $giasp = '9.990.000'; ?>
<div class="sp">
<?php
    echo "<h4 class='tensp'>Tên SP : $tensp</h4>";
    echo "<b class='giasp'> Giá SP : $giasp VNĐ</b>";
?>
</div>
<style>
   .sp { width: 300px; margin: auto; 
         border: solid 1px blue; 
         padding: 20px; text-align: center} 
   .sp > * { font-size: 20px; margin:0}
</style>

Tầm vực của biến trong php

Trong một trang php, bạn khai báo biến ở đầu trang, ở cuối trang, ở trong hàm… đều được. Tùy vị trí và từ khóa mà biến có thể có tầm vực khác nhau. Có 3 tầm vực của biến: local, global, static.

Biến global trong php

Biến global là biến mà bạn khai báo bên ngoài các function.  Và chỉ có thể dùng được bên ngoài các function. Code trong các function truy xuất đến biến toàn cục sẽ bị báo lỗi chưa định nghĩa biến.

<?php
$ht = "Đào Thị Long Lanh Kim Ánh Dương"; // biến global 
function xuathoten() {
    echo "<p>Họ tên là  $ht</p>"; //lỗi
}
echo "<h4>Họ tên: $ht</h4>"; //ok
xuathoten();
?>

Biến local trong php

Biến local là những biến mà bạn khai báo bên trong function.  Và chỉ có thể dùng được bên trong function đó mà thôi. Bên ngoài function và trong các function khác không dùng được biến đó.

<?php    
function xuathoten() {
    $ht = "Đào Thị Long Lanh Kim Ánh Dương"; // biến lobal 
    echo "<p>Họ tên là  $ht</p>"; //ok
}
xuathoten();
echo "<h4>Họ tên: $ht</h4>"; //lỗi
?>

Từ khóa global trong funtion

Trong các function, từ khóa global được dùng để truy xuất các biến toàn cục bên ngoài function.

<?php
$ht = "Đào Thị Long Lanh Kim Ánh Dương"; // biến global 
function xuathoten() {
    global $ht;
    echo "<p>Họ tên là  $ht</p>"; //ok
}
xuathoten();
?>

PHP cũng lưu các biến global trong 1 array có tên $GLOBALS. Bạn có thể dùng kiểu này như là cách thay thế cho cách dùng từ khóa global cũng được. Ví dụ:

<?php
$ht = "Công Tằng Tôn Nữ Trang Mỹ Lệ Ngọc Huyền Huỳnh Hoa Lá Liễu Bạch Mộng Hồng Nga";  
function xuathoten() {
    echo "<p>Họ tên là  ". $GLOBALS['ht'] ."</p>"; //ok
}
xuathoten();

Biến static trong php

Khi 1 function thực thi hoàn tất thì các biến local trong function đó sẽ bị xóa hết. Lần sau gọi function thì biến local trong function lại được tạo ra lại.

Do đó những giá trị của biến local được tính toán được trong lần gọi trước không còn dùng được trong lần gọi sau. 

Nếu bạn muốn biến local không bị xóa khi chạy xong function thì dùng từ khóa static ở trước tên biến khi khai báo. Xem ví dụ sau:

<?php
function tang2() {
  static $x = 0;
  echo "x = $x  <br>";
  $x+=2;
}
tang2();
tang2();
tang2();

Khi có từ khóa static ở trước 1 biến local, biến đó vẫn là local của hàm thôi. Nhưng mỗi lần hàm được gọi chạy thì giá trị của lần chạy trước đó vẫn còn dùng được cho lần chạy sau.

Variable variable

PHP có thể xử lý tên biến rất linh động, giá trị của 1 biến có thể là tên của 1 biến khác, trường hợp này bạn dùng hai dấu $ như sau

<?php
$toan = 7; $van = 8;
$diem = 'toan';
echo $diem, " ", $$diem; //toan 7

Các loại biến đặc biệt

Trong php còn có những biến đặc biệt khác nữa. Đó là những biến có cấu trúc. Hai loại biến có cấu trúc là mảng đối tượng. Đi cùng với các biến này là các đặc điểm riêng và function xử lý riêng cho chúng. Bạn sẽ học ở bài riêng nhé.

Cần tham khảo thêm thì bạn xem các link này