Chuỗi trong PHP

Chuỗi trong PHP là gì?

Chuỗi trong PHP là một chuỗi các ký tự, nó được sử dụng để lưu trữ và thao tác văn bản. Có 4 cách để định nghĩa một chuỗi trong PHP:

  1. Dấu nháy đơn.
  2. Dấu nháy kép.
  3. Cú pháp heredoc.
  4. Cú pháp newdoc.

Dấu nháy đơn

Bạn có thể sử dụng cặp dấu nháy đơn để định nghĩa một chuỗi. Chuỗi này là một chuỗi đơn thuần, nó xem các biến và ký tự đặc biệt trong chuỗi như là các ký tự thông thường khác và không có bất kỳ xử lý nào khi in.

<?php  
   $num1 = 10;   
   $str1 = 'trying variable $num1';  
   $str2 = 'trying backslash n and backslash t inside single quoted string \n \t';  
   $str3 = 'Using single quote \'my quote\' and \\backslash';
   echo $str1;
   echo <br/>;
   echo $str2;
   echo <br/>;
   echo $str3;  
?>  

Đây là kết quả:

trying variable $num1 
trying backslash n and backslash t inside single quoted string \n \t 
Using single quote 'my quote' and \backslash

Dấu nháy kép

Bạn có thể sử dụng cặp dấu nháy kép để định nghĩa một chuỗi. Chuỗi này sẽ thay thế các biến bằng giá trị của nó và hiển thị các ký tự đặc biệt khi in.

<?php  
   $num1=10;   
   echo "Number is: $num1";  
?>

Đây là kết quả:

Number is: 10

Cú pháp heredoc

Bạn cũng có thể sử dụng cú pháp heredoc để định nghĩa chuỗi trong PHP.

Trong cú pháp heredoc, một mã định danh được cung cấp sau toán tử <<< này và ngay lập tức một dòng mới được bắt đầu để viết bất kỳ văn bản nào. Sử dụng mã định danh để đóng và lưu ý là không có bất kỳ khoảng trắng hoặc tab nào ở phía trước.

<?php
    $str = <<<Demo
It is the example 
of multiple 
lines of text.
Demo;

    echo $str;
?>

Đây là kết quả:

It is the example of multiple lines of text.

Heredoc tương tự như chuỗi trong cặp dấu nháy kép. Nó cũng có thể in giá trị của biến và các ký tự đặc biệt.

<?php
    $city = 'Delhi';
    $str = <<<DEMO
Hello! My name is Misthi, and I live in $city.
DEMO;
    echo $str;
?>

Đây là kết quả:

Hello! My name is Misthi, and I live in Delhi. 

Cú pháp newdoc

Khai báo newdoc tương tự như heredoc, chỉ khác ở chỗ mã định danh trong newdoc phải đặt trong cặp dấu nháy đơn.

Nếu heredoc tương tự như chuỗi trong cặp dấu nháy kép thì newdoc tương tự như chuỗi trong cặp dấu nháy đơn.

<?php
    $comdy = 'Comdy Technical';
    $str = <<<'DEMO'
Welcome to $comdy.
Learn with newdoc example.
DEMO;
    echo $str;
?>

Đây là kết quả:

Welcome to $comdy. Learn with newdoc example.
Lưu ý: newdoc được hỗ trợ bởi các phiên bản PHP 5.3.0+.

Ví dụ về chuỗi trong PHP

Sau đây là các ví dụ hợp lệ của chuỗi trong PHP:


$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 nằm trong cặp dấu nháy đơn là các chuỗi đơn thuần, trong khi đó các chuỗi trong cặp dấu nháy đôi sẽ thay thế các biến bằng các giá trị của chúng cũng như hiển thị các ký tự đặc biệt.

Ví dụ sau sẽ minh họa điều này:

<?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 (\).

Toán tử nối chuỗi trong PHP

Để nối hai biến chuỗi với nhau, hãy sử dụng toán tử dấu chấm (.)

<?php
   $string1 = "Hello World";
   $string2 = "1234";
   
   echo $string1 . " " . $string2;
?>

Đây là kết quả:

Hello World 1234

Nếu bạn xem kỹ đoạn mã trên, bạn sẽ thấy rằng chúng tôi đã sử dụng toán tử ghép hai lần. Điều này là do chúng tôi đã chèn thêm khoảng trắng vào giữa hai chuỗi.

Sử dụng hàm strlen() trong PHP

Hàm strlen() là một hàm tích hợp sẵn trong PHP được sử dụng để trả về độ dài của chuỗi. Ví dụ sau trả về độ dài của chuỗi "Hello world!"

<?php
   echo strlen("Hello world!");
?>

Đây là kết quả:

12

Độ dài của một chuỗi thường được sử dụng trong các vòng lặp hoặc các hàm khác, khi cần biết khi nào chuỗi kết thúc.

Sử dụng hàm strpos() trong PHP

Hàm strpos() là một hàm tích hợp sẵn trong PHP được sử dụng để trả về vị trí của một chuỗi hoặc một ký tự trong một chuỗi.

Nếu một kết quả khớp được tìm thấy trong chuỗi, hàm này sẽ trả về vị trí của kết quả khớp đầu tiên. Nếu không tìm thấy kết quả khớp, nó sẽ trả về FALSE.

Ví dụ sau đây sẽ tìm và trả về vị trí của chuỗi "world" trong chuỗi "Hello world!":

Bản thử trực tiếp
<?php
   echo strpos("Hello world!","world");
?>

Đây là kết quả:

6

Như bạn thấy vị trí của chuỗi "world" trong chuỗi "Hello world!" của chúng ta là vị trí 6. Lý do là 6 chứ không phải 7, là vị trí đầu tiên trong chuỗi là 0 chứ không phải 1.

LƯU Ý - Các hàm chuỗi tích hợp sẵn được trình bày chi tiết tại đây.


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.