剛用到一個由字符串來設定對像屬性名的功能。發現大括號的作用真強….
1. 動態設置對象的屬性名的使用:
寫法一(不能正確設置):
$obj->$string[$key]; //這裡只能使用$string的0位置的字符作為屬性名值,如:$string = 'string'; $obj->$string[$key] 等同於$obj->s[$key];
寫法二(可以正確設置):
$obj->{$string}[$key]; //這裡的大括號有點類似於運算中的小括號的作用,即先算大括號裡面的內容。但是請注意:
寫法三(錯誤的寫法):
$obj->($string)[$key]; // 直接報錯!
2. 檢測字符串的長度中使用:
$string = 'string';
if(isset($string{8})) {
echo 'Is set!';
} else {
echo 'Not set!';
}
3. 像字符串中使用變量的時候也要用到,如:
echo "{$string}, {$obj->string}";