home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

PHP/Tips/20050714/角括弧と波括弧の裏技 (v1)

PHP/Tips/20050714/角括弧と波括弧の裏技 (v1)

PHP / Tips / 20050714 / 角括弧と波括弧の裏技 (v1)
id: 58 所有者: msakamoto-sf    作成日: 2005-07-14 22:59:47
カテゴリ: PHP 

角括弧(bracket)による文字単位のアクセス

$str[10] = 'a';

のように、角括弧(bracket)で文字の位置を指定する事で、文字単位でアクセスする事が可能。
但しPHP6以降に「文字位置」と「バイト位置」のどちらになるかは不明。

あんまり使う事は無いのだけれど、文字列操作でsubstr()辺りが出てくると、出番が来たりする。

波括弧(brace)によるオブジェクトのプロパティの動的アクセス

これ、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なんて要らない。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2008-12-22 23:16:47
md5:d6b44c0a032a49789a7c16a7c99febce
sha1:7850e5b93a226e08119ac833a505b845e2217ef1
コメント
コメントを投稿するにはログインして下さい。