意思我剛剛碰到過這樣的一段代碼:我不undrestand爲什麼他們在這裏用大括號
// Assign initialized properties to the current object
foreach ($init as $property => $value)
{
$this->{$property} = $value;
}
。如果沒有它們,它會不會是一樣的$this->$property = $value;
?
意思我剛剛碰到過這樣的一段代碼:我不undrestand爲什麼他們在這裏用大括號
// Assign initialized properties to the current object
foreach ($init as $property => $value)
{
$this->{$property} = $value;
}
。如果沒有它們,它會不會是一樣的$this->$property = $value;
?
有在你的例子沒有優勢,但是它可能已被使用的一致性。在這裏你可以使用大括號,以確保PHP可以解析你正在嘗試做榜樣(訪問動態屬性):
// Dummy object
$obj = new stdClass();
$obj->color = 'green';
// The dynamic property we want is slightly more complex
$tmp = array('wantProp'=>'color');
// ... so let's use curly braces
echo $obj->{$tmp['wantProp']};
你是對的,就好像你沒有花括號一樣。對我來說,讓他們在這裏沒有任何意義。通常,在字符串文字中找到變量周圍的大括號來消除歧義。
例如,
$a = " $b->something says hello.";
這是不明確的,因爲你意思了把$ B,其次是「 - >東西」或對象$ B的「東西」屬性。通常PHP可以解決這個問題,但這樣做好多了:
$a = " {$b->something} says hello.";
由於大括號可以消除歧義。
問候, 拉爾夫
@elclanrs,使用的答案來回答:^) – sectus
@sectus ...太滑稽elclanrs有32K代表... prob知道何時使用而不使用答案,哈哈。 –
有幾個dups,ie http://stackoverflow.com/questions/9056021/curly-braces-notation-in-php – elclanrs