68

例えば:

$sql = <<<MySQL_QUERY
4

8 に答える 8

77

これがヒアドキュメントの構文です。ヒアドキュメント文字列<<<は、選択したトークンに加えて配置することで開始し、トークンのみ(他には何も!)を新しい行に配置することで終了します。便宜上、例外が1つあります。終了区切り文字の後にセミコロンを1つ追加できます。

例:

echo <<<HEREDOC
This is a heredoc string.

Newlines and everything else is preserved.
HEREDOC;
于 2010-09-13T11:44:36.203 に答える
20

これは、HEREDOC構文を使用する文字列の先頭です。

文字列を区切る3番目の方法は、ヒアドキュメント構文です:<<<。

この演算子の後に、識別子が提供され、次に改行が提供されます。文字列自体が続き、次に同じ識別子が続き、引用を閉じます。

于 2010-09-13T11:42:45.257 に答える
19

これはヒアドキュメントと呼ばれ、数行にわたる長いテキストを実行できます。そこにPHP変数を入れると、それらは値に置き換えられます。チャートという言葉は何でもかまいません。引用されたテキストが始まる場所で開始および停止するのは同じである必要があります。

複数の引用符で囲まれた文字列を追加することで同じことを行うことができますが、このHTMLテキストのような拡張ドキュメントの場合、ほとんどの場合、これはよりクリーンです。PHPの単一引用符文字列のようなnowdocと呼ばれるものもありますが、これらでは変数を使用できません。

于 2012-06-18T22:37:02.237 に答える
12

PHPheredocです。

例:

$sql = <<<MySQL_QUERY
SELECT * 
FROM TAB 
WHERE A = 1 AND B = 2 
MySQL_QUERY;           
于 2010-09-13T11:42:45.887 に答える
8

引用符などを気にする必要のない長い文字列のヒアドキュメントです。CHARTという単語に気付いた場合、文字列の終わりを示すCHART;という行があります。

この形式を使用するときに覚えておくべき重要なことは、文字列の終わりを定義するために使用する文字列(この場合はCHARTなど)が何であれ、その単語はそれ自体の行に表示され、その後にセミコロンが続き、NO文字は、同じ行のセミコロンの後に空白文字でさえも出現する可能性があります。そうでない場合、PHPはそれが文字列の一部であると見なします。

于 2012-06-18T22:38:44.063 に答える
7

これはヒアドキュメント構文です。

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
于 2010-09-13T11:43:01.523 に答える
0

Heredoc私は、Nowdoc非常に強力で有用なものの両方を見つけましPHPた。これまでのところ、あなたができることの例をこれ以上挙げている人がいないことに驚いています。

Heredocまず、との違いNowdocは単純です。

  • Heredoc:変数を入れることができる""二重引用符文字列のようなものです
  • Nowdoc:''一重引用符の文字列のようなもので、変数は解析されません

次の例では、トークンを一重引用符で囲むだけHeredocにするために、を 表示します->'TOKEN'。Nowdoc

機能と利点

  • 「」と「」は必要なだけ追加でき、エラーは発生しません。
  • 動的変数を使用してHTMLコードを簡単に出力し、usesellの連結を回避します。
  • 文字用の変数に保存し、小さなコンポーネントを作成して出力することができます。
  • 行は文字通り「\n」で解釈されるため、ドキュメントに書き込むようなものであり、
    nl2brで追加するのにも役立ちます。

簡単な例

$a = "Hello";
$b = "World";
// HEREDOC
echo <<<HEREDOC
<strong> HEREDOC:  </strong> 
Variable A: "$a" 
Variable B: "$b"
HEREDOC;
echo '</br>';

// NOWDOC
echo <<<'NOWDOC'
<strong> NOWDOC:  </strong> 
Variable A: "$a" 
Variable B: "$b"
NOWDOC;

出力

HEREDOC: Variable A: "Hello" Variable B: "World"
NOWDOC: Variable A: "$a" Variable B: "$b"

レシピ

  1. nl2brを使用して<br>、各行に追加します

これは、HEREDOCが各\nを実際の行として解釈するために機能します

   // HEREDOC
    echo nl2br(<<<HEREDOC
    <strong> HEREDOC:  </strong> 
    Variable A: "$a" 
    Variable B: "$b"
    HEREDOC);
    // Output HEREDOC:
    //Variable A: "Hello"
    //Variable B: "World"
  1. 小さなコンポーネントを作成する

         <?php
             foreach($tasks  as $task) {
                 // Create an HTML like component
                 $component = <<<HEREDOC
                 <div class="pure-u-1-3">
                     <div class="card">
                         <div class="card-header">
                            {$task['name']}
                         </div>
                         <div class="card-body">
                             <h5 class="card-title"> {$task['state']} </h5>
                             <p class="card-text"> {$task['description']} </p>
                             <a href="view?model=todo_list&task_id={$task['id']}" class="btn btn-primary">See Task Todos</a>
                         </div>
                     </div>                    
                 </div>
                 HEREDOC;
                 echo $component; // Output
    
             }
    
         ?>
    

または、1つの文字列を入力して、1つのエコーで出力します

    <?php
        $taskRendered = '';
        foreach($tasks  as $task) {
            // Create an HTML like component
            $component = <<<HEREDOC
            <div class="pure-u-1-3">
                <div class="card">
                    <div class="card-header">
                       {$task['name']}
                    </div>
                    <div class="card-body">
                        <h5 class="card-title"> {$task['state']} </h5>
                        <p class="card-text"> {$task['description']} </p>
                        <a href="view?model=todo_list&task_id={$task['id']}" class="btn btn-primary">See Task Todos</a>
                    </div>
                </div>                    
            </div>
            HEREDOC;
            $taskRendered .= $component;
        }
        echo $taskRendered; // Output
    
    ?>

ドキュメンテーション

于 2022-01-06T08:36:53.977 に答える
-1

明確なアイデアを得るには:

$data = array(
  "Id" => 12345,
  "Cutomer" => "hi",
  "Quantity" => 2,
  "Price" => 45
);

curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));

使用する場合<<<

$data = <<<DATA
{
  "Id": 12345,
  "Customer": "John Smith",
  "Quantity": 1,
  "Price": 10.00
}
DATA;

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

json_encode()結論:最初の方法を使用する場合は、何らかの処理が必要な方法に変換する必要があります。代わりに、演算子を使用して<<<時間を節約し、クリーンなコードを取得できます。:)

于 2020-12-29T17:36:11.093 に答える