$str[10] = 'a';
のように、角括弧(bracket)で文字の位置を指定する事で、文字単位でアクセスする事が可能。
但しPHP6以降に「文字位置」と「バイト位置」のどちらになるかは不明。
あんまり使う事は無いのだけれど、文字列操作でsubstr()辺りが出てくると、出番が来たりする。
これ、2008年時点でもPHPマニュアルに載ってないんだけど、PHP4.4.9とPHP5.2.5の両方で確かに動くんだよなぁ・・・。
<?php
class C1 {
var $p1;
var $p2;
}
$o = new C1();
$o->{"p1"} = 123;
$k = "p2";
$o->{$k} = 456;
var_dump($o);
→
object(c1)(2) {
["p1"]=>
int(123)
["p2"]=>
int(456)
}
PHPってオブジェクトのプロパティ値は内部的には連想配列で確かもっているので、実はこんな事も出来たりする。
(上のコードの続き)
foreach ($o as $prop => $v) {
echo "{$prop} = [$v]\n";
}
→
p1 = [123] p2 = [456]
BeanUtilsなんて要らない。