3

私はこれを見つけたいくつかのスクリプトで作業する必要があります:

$data = <<<DATA
MIN={$min}
INVOICE={$invoice}
AMOUNT={$sum}
EXP_TIME={$exp_date}
DESCR={$descr}
DATA;

誰かがもっと情報を提供してくれませんか$somevar = <<<DATA...そしてecho <<<HTML...これに関する有用な情報を見つけるのは難しいようです.


symfony2 で "Role" クラスを配列または arrayCollection として宣言する必要がありますか?

私はこのシナリオを持っています:

  • Userに属しますGroups
  • Groups特定のRoles

これをGroup.phpで宣言する必要があるかどうかを知りたい

これはGroup.phpで、これはRole.phpです。

$this->roles = new \Doctrine\Common\Collections\ArrayCollection();

また

$this->roles = new array();

それがsymfonyのセキュリティでどのように機能するのか混乱しています。つまり、symfony のセキュリティが arraycollection または array でロールを要求する形式を意味します。

4

3 に答える 3

6

http://www.php.net/manual/de/language.types.string.php#language.types.string.syntax.heredoc

文字列を区切る 3 つ目の方法は 、ヒアドキュメント構文 <<< です。この演算子の後に識別子が提供され、次に改行が提供されます。文字列自体が続き、引用符を閉じるために同じ識別子が再び続きます。

于 2012-07-19T08:25:38.263 に答える
5

ヒアドキュメント構文:

ヘレドック

文字列を区切る 3 つ目の方法は、ヒアドキュメント構文 <<< です。この演算子の後に識別子が提供され、次に改行が提供されます。文字列自体が続き、引用符を閉じるために同じ識別子が再び続きます。

終了 ID は、行の最初の列から開始する必要があります。また、識別子は、PHP の他のラベルと同じ命名規則に従う必要があります。これには、英数字とアンダースコアのみを含める必要があり、数字以外の文字またはアンダースコアで開始する必要があります。

これについては、php のドキュメントhttp://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredocで詳しく読むことができます 。

より詳しい情報:

例:

<?php
$mystring = <<<EOT
This is some PHP text.
It is completely free
I can use "double quotes"
and 'single quotes',
plus $variables too, which will
be properly converted to their values,
you can even type EOT, as long as it
is not alone on a line, like this:
EOT;
?> 

ヒアドキュメントと上記の例について注意すべき重要な点がいくつかあります。

好きなものを使用できます。「EOT」は一例です

区切り文字の前に <<< を使用して、PHP にヒアドキュメント モードに入りたいことを伝える必要があります。

PHP では変数置換が使用されます。つまり、ドル記号をエスケープする必要があります。エスケープしない場合、PHP は変数置換を試みます。

区切り文字はテキストのどこでも使用できますが、新しい行の最初の列では使用できません

文字列の最後に、スペースを入れずに区切り文字を入力し、その後にセミコロンを入力してステートメントを終了します。

ヒアドキュメント構文がないと、複雑な文字列の割り当てはすぐに非常に面倒になります。ヒアドキュメントは実際にはあまり使用されていません。ヒアドキュメントを使用していないためにコードが乱雑になっているスクリプトが多すぎるため、もっと使用してほしいと思うことがよくあります。

http://www.tuxradar.com/practicalphp/2/6/3

于 2012-07-19T08:27:08.917 に答える
1

これはヒアドキュメントと呼ばれ、識別子を指定してから、二重引用符で囲まれた文字列の代わりにこれを使用できるため、文字列には別の区切り文字が既にあるため、二重引用符をエスケープする必要はありません。同じエスケープ規則と二重引用符で囲まれた文字列の解析規則 (例: \n、\r、変数の解析など) がありますが、ヒアドキュメント構文を使用しているときに二重引用符をエスケープする必要はありません。

{$desc}一部は、文字列内の変数を解析する複雑な方法であるカーリー構文です。複雑だからといって、書くのが難しいわけではありません。複雑なということは、変数を解析するためのオプションが増えることを意味します (たとえば、関数からの戻り値を変数名として割り当て、その変数を解析することができます)。

ヒアドキュメントとカーリー構文の詳細については、http ://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc を参照してください。

于 2012-07-19T08:29:35.703 に答える