(タイトルの)これら2つの違いは何ですか?
{$するvar}の最初の 'ここで文字列' を使用VS {$するvar}の使用である$のvar.'another列」
例:
<?php echo "Hello {$var}!;" ?>
。
'文字列' の$再びvar.'string
例:
<?php echo '<strong style="color:#009900;">' . $username . ' is OK</strong>'; ?>
(タイトルの)これら2つの違いは何ですか?
{$するvar}の最初の 'ここで文字列' を使用VS {$するvar}の使用である$のvar.'another列」
例:
<?php echo "Hello {$var}!;" ?>
。
'文字列' の$再びvar.'string
例:
<?php echo '<strong style="color:#009900;">' . $username . ' is OK</strong>'; ?>
コードの下に中括弧について少し良く理解できるようになります。
(PHP 5.5.12でテストコード)ここでより多くの問題は、コードをより読みされていると、連結演算子を使って書くよりも良く見える何
<?php
$p = 5;
$r = 6;
echo "{$p}{$r}"; //56
$a = "string";
echo ".$a."; //.string.
printf(".$b.");//undefined variable
echo "{}"; //{}
echo "$c"; //undefined variable
echo "{{$a}}"; //{string}
echo "{{$b}}"; //undefined variable
class a {
static $x = "xyz";
const x = "cdef";
function b() {
return "World";
}
static function d(){
return "php";
}
}
$xyz = "pqrs";
$cdef = "defg";
$c = new a;
echo "Hello {$c->b()}.\n"; //Hello world.
echo "Hello {a::d()}"; //{a::d()}
echo "Hello {${a::d()}}"; //undefined variable
echo "Hello {${a::$x}}"; //Hello pqrs
echo "Hello {${a::x}}"; //Hello defg
function g(){
return "gun";
}
echo "{g()}"; //{g()}
?>
(。)。また、複雑な表現を可能にしているため、複雑な(中括弧)構文とも呼ばれています。 hereから理解できます。これは基本的には好きな文章スタイルです。
これは「複合(中括弧)構文」と呼ばれます。そして、二重引用符で囲まれた文字列内の変数式を具体的に示すために使用されます。
あなたが言及したもう1つは、可変引用符で囲まれた文字列の変数解析から抜け出します。別のアドオンとして
あなたは"
-quoted文字列内の多次元配列やオブジェクトを使用したい場合は、{}
表記が必要となります。例えば
$foo[1][2] = 'bar';
echo "hi $foo[1][2] mom"; // prints: hi Array[2] mom
echo "hi {$foo[1][2]} mom"; // prints: hi bar mom
PHPのパーサは「貪欲」ではない、そしてそれは、配列変数の最初の[]
の鍵を見つけたら、それはより多くのキーのために、さらにスキャンしません。つまり、子配列のキーは無視され、文字列コンテキストの配列を出力します。これは単に文字通りの単語のArray
です。オブジェクトの
同上:
echo "hi " . $foo[1] . "[2] mom";
echo "hi " . $foo->bar . "->baz mom";
デュープ:http://stackoverflow.com/両方の場合において
、非ブレースバージョンは等価として実行/解析されます質問/ 5571624/what-does-in-php-syntax – nogad