home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

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

作成日: 2005-07-14 22:59:47   /   last updated at: 2008-12-22 23:16: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なんて要らない。


original url: https://www.glamenv-septzen.net/view/58