首頁  >  文章  >  PHP7.3新功能:將迎來靈活的 heredoc 和 nowdoc語法結構

PHP7.3新功能:將迎來靈活的 heredoc 和 nowdoc語法結構

无忌哥哥
无忌哥哥原創
2018-07-12 10:43:192699瀏覽

PHP7.3新功能:將迎來靈活的 heredoc 和 nowdoc語法結構

php.net RFC 頻道已經公佈了PHP 7.3 的Heredoc 和Nowdoc 語法更新,此次更新專注於程式碼可讀性:

#Heredoc 和Nowdoc 有非常嚴格的語法,有些時候這令許多開發者避而遠之,因為他們在程式碼中看起來非常醜陋,令程式碼的可讀性降低。本次的更新針對此問題,對語法做出了以下兩個更改:

  1. 支援閉合標記符的縮排;

#不再強制閉合標記符的換行;

從PHP 7.2 的目前實作來看, 就像這個簡單的例子:

<?php
class foo {
    public $bar = <<<EOT
bar
EOT;
}
在7.3 版本中,以下形式是可用的:###
<?php
class foo {
    public $bar = <<<EOT
    bar
    EOT;
}
###閉合標記的縮排決定了heredoc/nowdoc 中每個新行的空格的數量:###
<?php

// 4 个缩进空格
echo <<<END
      a
     b
    c
    END;
/*
  a
 b
c
*/
###在PHP 7.2 的當前實作中,必須存在一個新行來結束heredoc/nowdoc。 PHP 7.3 移除了這個約束:###
<?php

stringManipulator(<<<END
   a
  b
 c
END);

$values = [<<<END
a
b
c
END, 'd e f'];
###Heredoc 和Nowdoc 的背景######Nowdoc 從PHP 5.3.0 版本開始支持,他和Heredoc 的不同之處,僅是雙引號和單引號的差別。 Nowdoc 在開始標記周圍添加了單引號,則沒有解析:###
<?php

$name = 'Example';
$str = <<<'EOD'
Example of string $name
spanning multiple lines
using nowdoc syntax.
EOD;
###上面的nowdoc 會輸出:###
Example of string $name
spanning multiple lines
using nowdoc syntax.
###Here 文件 在wiki 上的定義:######## #在電腦學科中,here文檔,又稱為heredoc、hereis、here-字符串或here-腳本,是一個文件輸入或資料流輸入:可以被當成完整文件的塊狀程式碼。它可以保存文字裡面的換行或是縮排等空白字符。有些語言允許在字符串裡執行變數替換和命令替換。 #########Heredocs 和 Nowdocs 的改進將會讓你的 PHP 程式碼更有可讀性,錯誤率也會降低。另一方面,因為會閉合標記符的縮排會被移除,所以輸出會更簡潔直接。 ######以獲得更多資訊######推薦閱讀官方的更改文件 ——  flexible Heredoc and Nowdoc Syntaxes RFC。 PHP 官方的文件 Heredoc 和 Nowdoc。 ###
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn