Hướng dẫn what is the purpose of using the heredoc and nowdoc in php? - mục đích của việc sử dụng heredoc và nowdoc trong php là gì?

Tóm tắt: 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 của mã.: in this tutorial, you’ll learn how to use PHP heredoc and nowdoc strings to improve the readability of the code.

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

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

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

Code language: PHP (php)

Output:

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

Code language: PHP (php)

Các chuỗi HEREDOC của PHP hoạt động như các chuỗi được trích dẫn kép, không có các trích dẫn kép. Điều đó có nghĩa là họ không cần phải thoát khỏi trích dẫn và mở rộng các 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)

PHP HEREDOC Cú pháp

Sau đây cho thấy cú pháp của chuỗi Heredoc:

$str = <<

Code language: PHP (php)

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

Đầu tiên, bắt đầu với toán tử

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

Code language: PHP (php)
0, đị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 nhiều dòng và bao gồm các trích dẫn đơn () hoặc trích dẫn kép (Hồi).

Thứ ba, đóng chuỗi với cùng một định danh.

Bộ định danh chỉ phải chứa các ký tự chữ và số và nhấn mạnh và bắt đầu với một ký tự dấu gạch dưới hoặc không chữ số.

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

  • Bắt đầu ở cột đầu tiên của dòng
  • Không chứa ký tự khác ngoại trừ dấu chấm phẩy (

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

    Code language: PHP (php)
    1).
  • Ký tự trước và sau khi nhận dạng đóng phải là ký tự mới được xác định bởi hệ điều hành cục bộ.

Những điều sau đây cho thấy một chuỗi Heredoc không hợp lệ vì ký tự trước đó không phải là ký tự dòng mới:

$str = << IDENTIFIER; echo $str;

Code language: PHP (php)

Tuy nhiên, chuỗi Heredoc sau đây là hợp lệ:

$str = <<$str;

Code language: PHP (php)

Các trường hợp sử dụng chuỗi PHP heredoc

Trong thực tế, bạn sử dụng cú pháp HEREDOC để xác định một chuỗi chứa một trích dẫn, trích dẫn 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 một cách linh hoạt. Ví dụ:

$title = 'My site'; $header = <<

$title

HEADER; echo $header;

Code language: PHP (php)

PHP NowDoc Cú pháp

Một 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. Tại đây, cú pháp của chuỗi NowDoc:

$str = <<<'IDENTIFIER' place a string here it can span multiple lines and include single quote ' and double quotes " IDENTIFIER;

Code language: PHP (php)

Cú pháp NowDoc, tương tự như cú pháp HEREDOC, ngoại trừ việc định danh sau

Bản tóm tắt

  • Các chuỗi Heredoc giống như các chuỗi được trích dẫn kép mà không trốn thoát.
  • Các chuỗi NowDoc giống như các chuỗi được trích xuất đơn mà không thoát khỏi.

Bạn có thấy hướng dẫn này hữu ích không?

Hướng dẫn what is the purpose of using the heredoc and nowdoc in php? - mục đích của việc sử dụng heredoc và nowdoc trong php là gì?

Trong các ví dụ PHPGRID của chúng tôi, chúng tôi đã thấy một số mã với cú pháp kỳ lạ như trong ví dụ về xử lý sự kiện:

12345678910111213
2
3
4
5
6
7
8
9
10
11
12
13

...

// Đăng dữ liệu Trang khác sau khi gửi $ aftersubmit =
$afterSubmit = << function (event, status, postData)
{
    phpGrid_orders.trigger("reloadGrid");
}
AFTERSUBMIT
;

$dg->add_event("jqGridInlineAfterSaveRow",$afterSubmit);->add_event("jqGridInlineAfterSaveRow", $afterSubmit);

...

// Đăng dữ liệu Trang khác sau khi gửi $ aftersubmit =

Vậy đây là những gì và chúng hoạt động như thế nào?

Trong PHP, có rất nhiều cách để chỉ định giá trị chuỗi. Hai phương pháp thường xuyên nhất là sử dụng trích dẫn đơn hoặc kép.

Dấu ngoặc kép

123456
2
3
4
5
6

Với chuỗi được trích dẫn kép, các ký tự thoát như \ n, được coi là phá vỡ dòng mới và các biến được thay thế bằng các giá trị của chúng. Như trong ví dụ này: = 'Hello';
echo "$hello\nWorld!";

$ hello = 'xin chào'; echo "$ hello \ nWorld!";
// Hello
// World!

// ra // Xin chào // Thế giới!

Dấu nháy đơn

12345
2
3
4
5

$ hello = 'xin chào'; echo '$ hello \ nWorld!'; = 'Hello';
echo '$hello\nWorld!';

// xuất // $ hello \ nworld
// $hello\nWorld

Khi chúng ta muốn xác định một chuỗi đa dòng, mọi thứ trở nên lộn xộn hơn. Ví dụ: trong các dịp, chúng ta cần bao gồm JavaScript đa dòng trong PHP như

1234
2
3
4

hàm foo (trạng thái, rowId) {& nbsp; & nbsp; $ ("#Báo cáoSto"). attr ("kích thước", 10);} foo(status, rowid)
{
    $("#reportsTo").attr("size", 10);
}

Giới thiệu Heredoc và NowDoc

May mắn thay, PHP cung cấp một cách tốt hơn để viết các biến chuỗi nhiều dòng trực tiếp với cú pháp Heredoc và NowDoc.

Các quy tắc cơ bản cho HEREDOC và NowDoc là

  • * Bắt đầu với một bộ ba ít hơn (một số định danh duy nhất cho đầu và kết thúc của chuỗi,
  • * DELIMITER phải luôn ở đầu một dòng, không có bất kỳ khoảng trống, chữ cái hoặc các ký tự khác.
  • * Định danh đóng phải nằm trên một dòng mới, theo sau là một đại tá và không có khoảng trắng trước đó.

Ví dụ:

12345678910111213
2
3
4
5
6
7
8
9
10
11
12
13

$size=10;echo = 10;
echo << function foo(status, rowid)
{
    $("#reportsTo").attr("size", $size);
}
EOT
;

// out put // function foo (status, rowid) // {// & nbsp; $ ("#báo cáo"). Attr ("size", 10); //}
// function foo(status, rowid)
// {
//  $("#reportsTo").attr("size", 10);
// }

Chúng tôi có thể sử dụng bất kỳ chuỗi nào để biểu diễn định danh để đánh dấu sự khởi đầu và kết thúc của chuỗi. Dấu ba ít hơn phải luôn luôn đến trước số nhận dạng mở.

Heredoc khác với NowDoc ở chỗ nó sử dụng các chuỗi được trích xuất kép. Đối với các chuỗi thoát, v.v., phân tích cú pháp được thực hiện bên trong một HEREDOC, nhưng NowDoc sử dụng các văn bản được trích dẫn đơn và do đó phân tích cú pháp không được thực hiện.

12345678910111213
2
3
4
5
6
7
8
9
10
11
12
13

$size=10;echo = 10;
echo <<<'EOT'
function foo(status, rowid)
{
    $("#reportsTo").attr("size", $size);
}
EOT
;

// ra đầu ra: // function foo (status, rowId) // {// & nbsp; $ ("#Báo cáoSto").
// function foo(status, rowid)
// {
//  $("#reportsTo").attr("size", $size);
// }

Sự kết luận

Heredoc và NowDoc là những lựa chọn thay thế tiện dụng cho cú pháp chuỗi được trích dẫn thường xuyên hơn trong PHP để tạo chuỗi, đặc biệt là chuỗi kéo dài nhiều dòng.

Vì vậy, lần tới khi bạn xử lý một chuỗi dài, hãy thử Heredoc hoặc NowDoc!

Heredoc và NowDoc trong PHP là gì?

NowDocs là các chuỗi được trích xuất một lần mà Heredocs là các chuỗi được trích dẫn kép. Một nowDoc được chỉ định tương tự như Heredoc, nhưng không có phân tích cú pháp nào được thực hiện bên trong một nowDoc. Cấu trúc là lý tưởng để nhúng mã PHP hoặc các khối văn bản lớn khác mà không cần phải trốn thoát.. A nowdoc is specified similarly to a heredoc, but no parsing is done inside a nowdoc. The construct is ideal for embedding PHP code or other large blocks of text without the need for escaping.

PHP heredoc được sử dụng để làm gì?

HEREDOC PHP Cú pháp là một cách để viết khối văn bản lớn bên trong PHP, không có trích dẫn đơn lẻ, trích dẫn đôi.Nó dựa vào a way to write large bloc of text inside PHP, without the classic single quote, double quotes delimiters. It relies on <<< and a token that will also mark the end of the string.

Heredoc là gì và tại sao nó có thể hữu ích?

Heredoc là một cách để xác định chuỗi đa dòng, trong khi duy trì thụt lề & định dạng ban đầu.Bạn có thể sử dụng Heredoc để nhúng các đoạn mã SQL, HTML hoặc thậm chí là XML.A heredoc bắt đầu vớia way to define a multiline string, while maintaining the original indentation & formatting. You can use a Heredoc to embed snippets of SQL, HTML, or even XML code. A Heredoc starts with <<- , followed by a word that represents the name for the heredoc, then the contents.

Chuỗi Heredoc là gì?

Trong điện toán, một tài liệu ở đây (tài liệu ở đây, văn bản, heredoc, ở đây, ở đây chuỗi hoặc ở đây-scriptĐó là một tập tin riêng biệt.a file literal or input stream literal: it is a section of a source code file that is treated as if it were a separate file.