Php-Biến và hằng

Cách chính để lưu trữ thông tin ở giữa 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ề các biến trong PHP.

     Tất cả các biến trong PHP được biểu thị bằng ký hiệu đô la ($).

     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 với 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ể, nhưng không cần, được khai báo trước khi gán.

     Các biến trong PHP không có kiểu nội tại – 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 việc tự động chuyển đổi các loại từ loại này sang loại khác khi cần thiết.

     Các biến PHP giống như Perl.

PHP có tổng cộng tám loại dữ liệu mà chúng tôi sử dụng để xây dựng các biến của mình –

     Integers − là số nguyên, không có dấu thập phân, chẳng hạn như 4195.

     Doubles − là các số có dấu phẩy động, như 3.14159 hoặc 49.1.

     Booleans – chỉ có hai giá trị có thể là đúng hoặc sai.

     NULL − là một kiểu đặc biệt chỉ có một giá trị: NULL.

     Strings− là các chuỗi ký tự, như ‘PHP hỗ trợ các thao tác chuỗi.’

     Arrays− là tập hợp được đặt tên và lập chỉ mục của các giá trị khác.

     Objects – là các thể hiện của các lớp do lập trình viên định nghĩa, có thể đóng gói cả các loại giá trị và chức năng khác dành riêng cho lớp.

    Resources − là các biến đặc biệt chứa tham chiếu đến tài nguyên bên ngoài PHP (chẳng hạn như kết nối cơ sở dữ liệu).

Năm loại đầu tiên là các loại đơn giản và hai loại tiếp theo (mảng và đối tượng) là hỗn hợp – các loại hỗn hợp có thể đóng gói các giá trị tùy ý khác của loại tùy ý, trong khi các loại đơn giản thì không thể.

Chúng tôi sẽ chỉ giải thích kiểu dữ liệu đơn giản trong chương này. Mảng và Đối tượng sẽ được giải thích riêng.

Integers

Chúng là các số nguyên, không có dấu thập phân, chẳng hạn như 4195. Chúng là loại đơ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ư vậy –

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

Số nguyên có thể ở định dạng thập phân (cơ số 10), bát phân (cơ số 8) và 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 với số 0 đứng đầu và số thập lục phân có số 0x đứng đầu.

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

Doubles

Họ thích 3.14159 hoặc 49.1. Theo mặc định, in gấp đôi với số vị trí thập phân tối thiểu cần thiết. Ví dụ: mã –

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

Nó tạo ra đầu ra trình duyệt sau –

2.28888 + 2.21112 = 4.5

Boolean

Chúng chỉ có hai giá trị có thể là đúng hoặc sai. PHP cung cấp một vài hằng số đặc biệt để sử dụng như Booleans: TRUE và FALSE, có thể được sử dụng như sau –

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

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

Giải thích các loại khác như Booleans

Dưới đây là các quy tắc để xác định “sự thật” của bất kỳ giá trị nào chưa thuộc loại Boolean –

     Nếu giá trị là một số, nó là sai nếu chính xác bằng 0 và đúng nếu ngược lại.

     Nếu giá trị là một chuỗi, thì giá trị đó là sai nếu chuỗi trống (không có ký tự nào) hoặc là chuỗi “0” và đúng nếu ngược lại.

     Các giá trị của loại NULL luôn sai.

     Nếu giá trị là một mảng, nó là sai nếu nó không chứa giá trị nào khác và nó là đúng nếu ngược lại. Đối với một đối tượng, chứa một giá trị có nghĩa là có một biến thành viên đã được gán giá trị.

     Tài nguyên hợp lệ là true (mặc dù một số hàm trả về tài nguyên khi thành công sẽ trả về FALSE khi không thành công).

     Không sử dụng gấp đôi như Booleans.

Mỗi biến sau đây có giá trị thực được nhúng trong tên của nó khi nó được 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

NULL là một loại đặc biệt chỉ có một giá trị: NULL. Để cung cấp cho 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 ra nó không phân biệt chữ hoa chữ thường; bạn cũng có thể gõ –

$my_var = null;

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

     Nó đánh giá là FALSE trong ngữ cảnh Boolean.

     Nó trả về FALSE khi được kiểm tra với hàm IsSet().

Strings

Chúng là các chuỗi ký tự, như “PHP hỗ trợ các thao tác chuỗi”. Sau đây là các ví dụ hợp lệ của chuỗi

$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 được trích dẫn đơn lẻ được xử lý gần như theo nghĩa đen, trong khi các chuỗi được trích dẫn kép thay thế các biến bằng giá trị của chúng cũng như diễn giải đặc biệt các chuỗi ký tự nhất định.

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

Điều này sẽ tạo ra kết quả sau –

My $variable will not print!
My name will print

Không có giới hạn nhân tạo về độ dài chuỗi – trong giới hạn của bộ nhớ khả dụng, bạn phải có khả năng tạo các chuỗi dài tùy ý.

Các chuỗi được phân tách bằng dấu ngoặc kép (như trong “this”) được xử lý trước theo cả hai cách sau bởi PHP −

     Một số chuỗi 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 chuỗi biểu diễn các giá trị của chúng.

Các thay thế trình tự thoát là –

     \n được thay thế bằng ký tự xuống dòng

     \r được thay thế bằng ký tự xuống 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 một dấu gạch chéo ngược (\)

Tài liệu đây

Bạn có thể gán nhiều dòng cho một biến chuỗi bằng cách sử dụng tài liệu tại đây –

<?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;
?>

Điều này sẽ tạo ra kết quả sau –

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 biến đổi

Phạm vi có thể được định nghĩa là phạm vi khả dụng 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 –

     Biến cục bộ

     thông số chức năng

     biến toàn cầu

     biến tĩnh

Đặt tên biến

Quy tắc đặt tên biến là –

     Tên biến phải bắt đầu bằng 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.

Constants – Hằng

Hằng số là tên hoặc mã định danh cho một giá trị đơn giản. Một giá trị không đổi không thể thay đổi trong quá trình thực thi tập lệnh. Theo mặc định, hằng số phân biệt chữ hoa chữ thường. Theo quy ước, các định danh hằng luôn là chữ hoa. Tên hằng số bắt đầu bằng một chữ cái hoặc dấu gạch dưới, theo sau là bất kỳ số lượng chữ cái, số hoặc dấu gạch dưới nào. Nếu bạn đã xác định một hằng số, nó không bao giờ có thể bị thay đổi hoặc không được xác định.

Để xác định một hằng số, bạn phải sử dụng hàmdefine() và để truy xuất giá trị của một hằng số, bạn chỉ cần chỉ định tên của nó. Không giống như với các biến, bạn không cần phải có một hằng với $. Bạn cũng có thể sử dụng hàm constant() để đọc giá trị của hằng nếu bạn muốn lấy tên của hằng một cách linh hoạt.

constant() function

Như tên gọi, hàm này sẽ trả về giá trị của hằng số.

Điều này hữu ích khi bạn muốn truy xuất giá trị của một hằng số, nhưng bạn không biết tên của nó, tức là nó được lưu trữ trong một biến hoặc được trả về bởi một hàm.
constant() ví dụ

<?php
   define("MINSIZE", 50);
   
   echo MINSIZE;
   echo constant("MINSIZE"); // same thing as the previous line
?>

Chỉ có thể chứa dữ liệu vô hướng (boolean, integer, float và string) trong hằng số.

Sự khác nhau giữa hằng và biến là

     Không cần phải viết ký hiệu đô la ($) trước một hằng số, như trong Biến, người ta phải viết ký hiệu đô la.

     Các hằng số không thể được xác định bằng phép gán đơn giản, chúng chỉ có thể được xác định bằng cách sử dụng hàmdefine().

     Các hằng số có thể được xác định và truy cập ở bất cứ đâu mà không cần quan tâm đến các quy tắc phạm vi của biến.

     Khi các Hằng số đã được đặt, có thể không được xác định lại hoặc không xác định.

Tên hằng hợp lệ và không hợp lệ

// Valid constant names
define("ONE",     "first thing");
define("TWO2",    "second thing");
define("THREE_3", "third thing");
define("__THREE__", "third value");

// Invalid constant names
define("2TWO",    "second thing");

Magic Constant PHP

PHP cung cấp một số lượng lớn các hằng số được xác định trước cho bất kỳ tập lệnh nào mà nó chạy.

Có năm hằng số ma thuật thay đổi tùy thuộc vào nơi chúng được sử dụng. Ví dụ: giá trị của LINE phụ thuộc vào dòng được sử dụng trong tập lệnh của bạn. Các hằng số đặc biệt này không phân biệt chữ hoa chữ thường và như sau –

Một vài hằng số PHP “kỳ diệu” được đưa ra dưới đây –

Sr.NoName & Description
1__LINE__ The current line number of the file.
2__FILE__ The full path and filename of the file. If used inside an include,the name of the included file is returned. Since PHP 4.0.2, __FILE__ always contains an absolute path whereas in older versions it contained relative path under some circumstances.
3__FUNCTION__ The function name. (Added in PHP 4.3.0) As of PHP 5 this constant returns the function name as it was declared (case-sensitive). In PHP 4 its value is always lowercased.
4__CLASS__ The class name. (Added in PHP 4.3.0) As of PHP 5 this constant returns the class name as it was declared (case-sensitive). In PHP 4 its value is always lowercased.
5__METHOD__ The class method name. (Added in PHP 5.0.0) The method name is returned as it was declared (case-sensitive).