Heredoc PHP w3schools

Như chúng ta đã biết từ bài học trước, chuỗi là dãy các ký tự. Trước khi chúng ta có thể sử dụng một chuỗi, chúng ta phải tạo ra nó. Chúng ta có thể tạo nó theo nhiều cách khác nhau

Cách dễ nhất để xác định một chuỗi là đóng nó trong dấu ngoặc đơn $string = 'value' và tất cả các ký tự trong dấu ngoặc kép sẽ được coi là ký tự

Nếu chúng ta cố gắng sử dụng ký tự (') trong dấu ngoặc đơn, nó sẽ không xuất ký tự, vì nó đóng dấu ngoặc kép đầu tiên và trả về lỗi. Để sử dụng các ký tự (') hoặc / trong một trích dẫn, chúng ta phải sử dụng nó với dấu gạch chéo ngược (\)

Chúng tôi cũng có thể xác định chuỗi bằng dấu ngoặc kép ( $string = "value")

Các chuỗi được xác định bởi dấu ngoặc kép được php nhận dạng và ở đầu ra trả về giá trị của biến

Trong trường hợp này, Php tự động nhận ra rất nhiều ký tự đặc biệt

Một cách khác để xác định chuỗi là sử dụng cú pháp heredoc. Nó sẽ bắt đầu bằng từ khóa (<<< ), sau đó phải có ID cụ thể, sau đó là chuỗi và cuối cùng là cùng một mã định danh để đóng phần chèn

Định danh đóng phải bắt đầu từ cột đầu tiên của dòng

Chỉ định id phải khớp với chữ cái, số nguyên hoặc dấu gạch dưới và phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới

Định danh đóng không chứa bất kỳ ký tự nào khác, ngoại trừ dấu chấm phẩy (;). Điều đó có nghĩa là không được có bất kỳ dấu cách hoặc tab nào trước hoặc sau dấu chấm phẩy

Như chúng ta có thể thấy định nghĩa của cú pháp heredoc tương tự như mô tả về dấu ngoặc kép, đó là tất cả các biến và ký tự đặc biệt, được xuất ra theo giá trị

Một cách khác để xác định chuỗi, là Nowdoc

Nowdoc giống như một heredoc, nhưng nó không hiển thị các ký hiệu

Điều này lý tưởng cho việc triển khai mã PHP hoặc các khối văn bản lớn khác mà không cần phải sàng lọc

Nowdoc định nghĩa cùng một trình tự được sử dụng trong heredoc, nhưng tuân theo mã định danh của nó được đặt trong dấu nháy đơn, ví dụ: <<< 'EOT'

Hỗ trợ Nowdoc đã được thêm vào bởi PHP 5. 3. 0

Php có rất nhiều hàm để thao tác với chuỗi, chúng ta sẽ tìm hiểu về chúng trong các bài học tiếp theo

Heredoc là một cách mạnh mẽ để tạo một chuỗi trong PHP với nhiều dòng hơn nhưng không sử dụng dấu ngoặc kép. Heredoc hiếm khi được sử dụng vì việc sử dụng hàng ngày phức tạp hơn khi tạo chuỗi có dấu ngoặc kép hoặc dấu ngoặc kép. Bên cạnh đó, việc sử dụng heredoc không đúng cách có thể dẫn đến các vấn đề trong mã của bạn

Tuy nhiên nếu muốn sử dụng bạn có thể thực hiện theo cách sau

Như bạn thấy heredoc bắt đầu với toán tử


This is a
demo message
with heredoc.
DEMO;
 
   echo $str;
?>
3 và một mã định danh. Sau đó, bạn có thể nhập văn bản của mình vào nhiều dòng hơn như thể đó là một chuỗi trích dẫn kép. Nó có nghĩa là bạn có thể sử dụng các biến bên trong heredoc. Nếu bạn đã sẵn sàng với văn bản của mình, bạn chỉ cần viết lại mã định danh trong một dòng mới như sau


This is a
demo message
with heredoc.
DEMO;
 
   echo $str;
?>

Đừng quên rằng không được phép thụt lề thẻ đóng nếu làm như vậy bạn sẽ gặp lỗi phân tích cú pháp.  

Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng các chuỗi PHP heredoc và nowdoc để cải thiện khả năng đọc mã

Giới thiệu về chuỗi PHP heredoc

Khi bạn đặt các biến trong một chuỗi trích dẫn kép, PHP sẽ mở rộng các tên biến. Nếu một chuỗi chứa dấu ngoặc kép (“), bạn cần thoát chúng bằng ký tự dấu gạch chéo ngược (


This is a
demo message
with heredoc.
DEMO;
 
   echo $str;
?>
4). Ví dụ

$he = 'Bob'; $she = 'Alice'; $text = "$he said, \"PHP is awesome\". \"Of course.\" $she agreed."; echo $text;

Code language: PHP (php)

đầu ra

Bob said, "PHP is awesome". "Of course." Alice agreed.

Code language: PHP (php)

Các chuỗi heredoc của PHP hoạt động giống như các chuỗi có dấu ngoặc kép, không có dấu ngoặc kép. Điều đó có nghĩa là họ không cần thoát dấu ngoặc kép và mở rộng biến. Ví dụ

$he = 'Bob'; $she = 'Alice'; $text = <<$he said "PHP is awesome". "Of course" $she agreed." TEXT; echo $text;

Code language: PHP (php)

Cú pháp di truyền PHP

Sau đây cho thấy cú pháp của một chuỗi heredoc

$str = <<

Code language: PHP (php)

Làm thế nào nó hoạt động

Trước tiên, hãy bắt đầu với toán tử

Bob said, "PHP is awesome". "Of course." Alice agreed.

Code language: PHP (php)
0, mã định danh và một dòng mới

<<

Code language: PHP (php)

Thứ hai, chỉ định chuỗi có thể trải rộng trên nhiều dòng và bao gồm dấu nháy đơn (‘) hoặc dấu nháy kép (“)

Thứ ba, đóng chuỗi có cùng mã định danh

Mã định danh chỉ được chứa các ký tự chữ và số, dấu gạch dưới và bắt đầu bằng dấu gạch dưới hoặc ký tự không phải chữ số

Định danh đóng phải tuân theo các quy tắc này

  • Bắt đầu ở cột đầu tiên của dòng
  • Không chứa ký tự nào khác ngoại trừ dấu chấm phẩy (______31)
  • Ký tự trước và sau mã định danh đóng phải là ký tự xuống dòng do hệ điều hành cục bộ xác định

Phần sau hiển thị một chuỗi heredoc không hợp lệ vì ký tự trước nó không phải là ký tự xuống dòng

$str = << IDENTIFIER; echo $str;

Code language: PHP (php)

Tuy nhiên, chuỗi heredoc sau là hợp lệ


This is a
demo message
with heredoc.
DEMO;
 
   echo $str;
?>
0

Các trường hợp sử dụng chuỗi di truyền PHP

Trong thực tế, bạn sử dụng cú pháp heredoc để xác định một chuỗi chứa dấu nháy đơn, dấu nháy kép hoặc biến. Chuỗi heredoc làm cho chuỗi dễ đọc hơn

Ngoài ra, bạn có thể sử dụng chuỗi heredoc để tạo HTML động. Ví dụ


This is a
demo message
with heredoc.
DEMO;
 
   echo $str;
?>
1

Cú pháp PHP Nowdoc

Chuỗi nowdoc tương tự như chuỗi heredoc ngoại trừ việc nó không mở rộng các biến. Đây là cú pháp của một chuỗi nowdoc


This is a
demo message
with heredoc.
DEMO;
 
   echo $str;
?>
2

Cú pháp của nowdoc tương tự như cú pháp của heredoc ngoại trừ định danh theo sau toán tử < cần được đặt trong dấu nháy đơn. Mã định danh của nowdoc cũng tuân theo các quy tắc đối với mã định danh heredoc