Bất kì một ngôn ngữ lập trình nào đều có khái niệm về cú pháp căn bản, khái niệm về biến và hằng số và php cũng không ngoại lệ, đây là kiến thức nền tảng trong lập trình mà hầu như lập trình viên nào cũng phải học đầu tiên. Trong bài này mình sẽ cùng các bạn tìm hiểu biến và hằng trong PHP nhé!
Cú pháp PHP cơ bản:
Cú pháp PHP chính là cú pháp trong ngôn ngữ C, các bạn làm quen với ngôn ngữ C thì có lợi thế trong lập trình PHP.
- Code PHP có thể được đặt ở bất kỳ nơi đâu trong file *.php
- Một đoạn code PHP bắt đầu bằng <?php và kết thúc bằng ?> (short open tag <? không được khuyến khích dùng)
- Nếu file *.php chỉ chứa thuần túy code PHP mà không có bất kỳ gì khác, chúng ta nên bỏ ?> đi, chỉ giữ lại <?php ở đầu file
- Một câu lệnh PHP được kết thúc bằng dấu chấm phẩy (;)
Trong thư mục www, các bạn tạo một folder có tên là demo, trong folder demo đó bạn tạo 1 file là index.php và thêm đoạn code dưới vào.
<!DOCTYPE html> <html> <body> <h1>My first PHP page</h1> <?php echo "Hello World!"; ?> </body> </html>
Chú ý 1: Một file .php có thể bao gồm cả HTML, CSS, JS và cả PHP. Vì vậy bắt buộc chúng ta phải có ký hiệu <?php và ?> để xác định đâu là code PHP. Tuy nhiên, nếu file chỉ chứa thuần tuý code PHP mà không chứa bất kỳ ngôn ngữ nào khác thì ta nên bỏ ?> ở cuối code đi. Lợi ích của nó là giúp ngăn ngừa các khoảng trắng ngẫu nhiên hoặc các dòng trống được thêm vào phía sau ?>
Chú ý 2: Khi muốn xuất một chuỗi, bạn có thể dùng dấu nháy đơn hoặc dấu nháy kép bao quanh chuỗi đó. Nhưng có 1 lưu ý là dấu nháy đơn sẽ hiểu rằng tất cả những thành phần được bao bên trong nó sẽ luôn là chuỗi và chỉ xuất ra y hệt như vậy. Còn dấu nháy kép sẽ xem xép những thành phần bên trong nó còn có biến nào hay không, để xuất cả chuỗi lẫn biến ra trình duyệt.
Ví dụ:
Ở trường hợp 1, nếu sử dụng dấu ngoặc đơn để bao chuỗi có chứa 1 biến bên trong thì nó vẫn tính biến đó là chuỗi,
<?php $daylabien = "Mọi người"; //khai bao bien echo 'Xin chao $daylabien'; //su dung dau ngoac don ?>
Bạn sẽ thấy trình duyệt xuất ra dòng chuỗi y chang trong dấu ngoặc đơn: Xin chao $daylabien
Ở trường hợp 2, nếu sử dụng dấu ngoặc kép để bao chuỗi có chứa 1 biến bên trong thì nó sẽ kiểm tra và xuất giá trị của chuỗi đó ra.
<?php $daylabien = "Mọi người"; //khai bao bien echo "Xin chao $daylabien"; //su dung dau ngoac kep ?>
Bạn sẽ thấy trình duyệt xuất ra dòng chuỗi như sau: Xin chao Mọi người
Còn về tốc độ thì dấu nháy đơn sẽ chạy nhanh hơn dấu nháy kép vì với dấu nháy kép trình biên dịch sẽ mất thêm một bước kiểm tra chuỗi bên trong có biến nào không, giống tựa như ví dụ bên trên vậy.
Comment trong PHP
- // Ghi chú một dòng đơn
- # Ghi chú một dòng đơn
- /* và */ Ghi chú một đoạn nhiều dòng. Để mở đầu đoạn ghi chú, ta dùng dấu /* và để kết thúc, ta dùng dấu */
Để lập trình bằng ngôn ngữ PHP cần chú ý những điểm sau:
- Cuối câu lệnh có dấu ;
- Biến trong PHP có tiền tố là $
- Mỗi phương thức đều bắt đầu { và đóng bằng dấu }
- Khi khai báo biến thì không có kiễu dữ liệu
- Nên có giá trị khởi đầu cho biến khai báo
- Phải có chi chú (comment) cho mỗi feature mới
- Sử dụng dấu // hoặc # để giải thích cho mỗi câu ghi chú
- Sử dụng /* và */ cho mỗi đoạn ghi chú
- Khai báo biến có phân biệt chữ hoa hay thường
Khai báo biến (VARIABLES)
Biến là một định danh, nó dùng để lưu trữ các giá trị và nó có thể dùng phép gán để thay đổi giá trị.
Khi thực hiện khai báo biến trong C, bạn cần phải biết tuân thủ quy định như: kiễu dữ liệu trước tên biến và có giá trị khởi đầu, tuy nhiên khi làm việc với PHP thì không cần khai báo kiểu dữ liệu nhưng sử dụng tiền tố $ trước biến. Cú pháp của biến bắt đầu bằng dấu đô la $
và tiếp theo là các chữ, số, dấu gạch dưới.
Các lưu ý khi làm việc với biến:
- Một biến bắt đầu bằng dấu $ và theo sau đó là tên biến
- Tên biến bắt buộc phải bắt đầu bằng ký tự hoặc dấu _
- Tên biến không được bắt đầu bằng ký số.
- Tên biến chỉ có thể chứa ký tự (A-z), ký số (0-9) và dấu _
- Tên biến phân biệt chữ hoa và chữ thường
- Thông thường tên biến được viết theo kiểu camelCase
Xuất phát từ những điều ở trên, khai báo biến trong PHP như sau:
<?php $a = ''; $b = ''; ?>
(Chúng ta hong cần phải xác định kiểu dữ liệu cho 1 biến trong PHP, kiểu dữ liệu sẽ tự động được xác định thông qua giá trị mà biến đó đang chứa.)
Gán giá trị cho biến
Để gán giá trị cho biến ta dùng toán tử phép gán =
$licount = 0; $lsSQL = "Select * from tblusers where active=1"; $nameTypes = array("first", "last", "company"); $checkerror = false;
In giá trị của biến ra màn hình
Ta có thể dùng hàm echo để in giá trị của biến ra màn hình theo 2 cách:
//cách 1 $txt = "You"; echo "I love $txt!"; // phải dùng dấu ngoặc kép để xuất giá trị của biến chứa trong chuỗi
//cách 2 //Sử dụng dấu chấm để nối chuỗi lại với nhau (tương tự dấu cộng trong JS) $txt = " You"; echo "I love " . $txt . "!";
Cả 2 cách trên đều sẽ cùng ra 1 kết quá: I love You
Phạm vi của biến
Phạm vi của biến là tầm hoạt động của biến nơi biến có thể được sử dụng sau khi đã khai báo. Có 2 loại phạm vi biến là global và local.
Phạm vi global
Biến được khai báo ở bên ngoài một hàm và chỉ có thể được sử dụng ở bên ngoài hàm.
$x = 5; // global scope function myTest() { // Sử dụng biến x trong hàm sẽ gây ra lỗi echo "<p>Giá trị biến x là: $x</p>"; //dòng này sẽ bị lỗi } myTest(); echo "<p>Giá trị biến x là: $x</p>";
Vậy, để có thể sử dụng được biến global bên trong một hàm, ta dùng từ khóa “global” trước tên biến khi sử dụng biến bên trong hàm.
$x = 5; $y = 10; function myTest() { global $x, $y; $y = $x + $y; } myTest(); echo $y; // kết quả xuất ra sẽ là 15
Một hướng khác, PHP lưu trữ giá trị của tất cả các biến global trong một mảng là $GLOBALS[index], trong đó index là tên của biến. Mảng này có thể được truy xuất bên trong hàm và có thể được dùng để cập nhật lại giá trị cho biến global một cách trực tiếp.
$x = 5; $y = 10; function myTest() { $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y']; } myTest(); echo $y; // outputs 15
Phạm vi local
Biến được khai báo ở bên trong một hàm và chỉ có thể được sử dụng ở bên trong hàm.
function myTest() { $x = 5; // local scope echo "<p>Giá trị biến x là: $x</p>"; } myTest(); //output là 5
Thông thường, khi 1 hàm đã chạy xong, tất cả các biến local sẽ bị huỷ. Từ ví dụ trên, nếu các bạn gọi hàm myTest() nhiều lần thì trên màn hình cũng chỉ xuất ra liên tục đáp án là số 5. Vì các biến local sẽ bị huỷ sau khi kết thúc hàm.
Khi muốn các biến local không bị hủy đi sau khi kết thúc hàm, ta dùng từ khóa “static” lúc khai báo biến.
function myTest() { static $x = 5; // local scope echo "<p>Giá trị biến x là: $x</p>"; $x++; } myTest(); myTest(); myTest(); myTest();
Trong hàm trên mình gán static cho biến x và sau đó cho x tăng dần mỗi khi kết thúc hàm. Nhờ gán static vào biến mà sau khi kết thúc hàm myTest(), giá trị của nó vẫn được giữ lại để cộng dồn cho các lần chạy tiếp theo. Vì vậy kết quả trên màn hình lúc này sẽ tăng dần như sau:
Superglobals
PHP hỗ trợ thêm các biến superglobals được khai báo sẵn (có thể được sử dụng ở bất kỳ phạm vi nào):
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
Các biến superglobals có thể sử dụng ở bất kỳ phạm vi nào trong PHP.
Khai báo hằng (CONSTANTS)
Hằng cũng là một biến nhưng bạn không thể thay đổi giá trị của nó. Tuy nhiên cách khai báo biến và hằng số thì lại khác nhau.
Quy định khi đặt hằng:
- Khi hằng được khai báo, giá trị của nó sẽ không để bị thay đổi hoặc hủy.
- Mặc định, hằng sẽ có phạm vi global và có thể được sử dụng ở bất kỳ đâu sau khi khai báo.
- Tên hằng phải bắt đầu bằng ký tự hoặc dấu _ và không có dấu $ như biến.
- Thông thường, tên hằng sẽ được viết IN toàn bộ, các từ sẽ cách nhau bằng dấu _
define(name, value, case-insensitive)
- name: tên hằng
- value: giá trị của hằng
- case-insensitive: mang giá trị true/false, dùng để xác định xem tên hằng có cần phân biệt chữ hoa hay thường hay không. Giá trị mặc định là false nghĩa là có phân biệt chữ hoa và chữ thường. Nếu giá trị là true nghĩa là không phân biệt chữ hoa và chữ thường.
define("GREETING", "Welcome to FIT-TDC HCM <3 !", true); function myTest() { echo GREETING; // xuất ra màn hình giá trị của hằng. } myTest();
Hằng số Magic trong PHP
PHP cung cấp một số lượng lớn các hằng số được định nghĩa trước để bất kỳ script nào cũng có thể sử dụng nó.
Có 5 hằng số magic, 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 mà nó được sử dụng trong script của bạn. Các hằng đặc biệt này là phân biệt kiểu chữ.
Bảng dưới liệt kê một số hằng magic trong PHP:
Tên | Miêu tả |
---|---|
__LINE__ | Dòng hiện tại của file |
__FILE__ | Đường dẫn đầy đủ và tên đầy đủ của file. Nếu sử dụng bên trong một include thì tên của file được include sẽ được trả về. Từ PHP 4.0.2, __FILE__ luôn luôn chưa một đường dẫn tuyệt đối, trong khi ở phiên bản cũ hơn chúng chứa đường dẫn tương đối trong một số trường hợp |
__FUNCTION__ | Tên của hàm. (Được thêm trong PHP 4.3.0) Như PHP 5, hằng số này trả về tên của hàm như nó đã khai báo trước đó (phân biệt kiểu chữ). Trong PHP 4, giá trị của nó luôn là chữ in thường |
__CLASS__ | Tên của lớp. (Được thêm trong PHP 4.3.0) Như PHP 5, hằng số này trả về tên của lớp như nó đã khai báo trước đó (phân biệt kiểu chữ). Trong PHP 4 giá trị của nó luôn là chữ in thường |
__METHOD__ | Tên phương thức lớp. (Được thêm trong PHP 5.0.0) Tên phương thức này được trả về như đã khai báo trước đó (phân biệt kiểu chữ). |
Qua bài viết mình mong các bạn có thể biết được cách khai báo 1 biến, hằng trong php, nhớ những quy tắc khi đặt biến để không bị lỗi khi code.
CHÚC CÁC BẠN THÀNH CÔNG