[PHP-dev 353] {} 演算子
Tsukada Takuya
php-dev@php.gr.jp
Mon, 6 May 2002 18:16:22 +0900 (JST)
こんにちは、塚田と申します。
はじめに、mbBufferクラスを実装しました。
ftp://night.fminn.nagano.nagano.jp/php4/be ta/php4_ombstring-0.1.tar.gz
# モジュール名を変えました。
それで、本題の {} 演算子ですが、
$buf = new mbBuffer("日本語");
if ($buf{0} == "日") {
echo "OK";
} else {
echo "NG";
}
という記述が、
$buf = new mbBuffer("日本語");
if ($buf->get_at(0)->equals("日")) {
echo "OK";
} else {
echo "NG";
}
と解釈されればよさそうに思います。
この例を関数を使って書くと、
$buf = mb_buf_create("日本語");
$tmp = mb_buf_get_at($buf, 0);
if (mb_buf_equals($tmp, "日") {
echo "OK";
} else {
echo "NG";
}
となります。
演算子の再定義ができるものだと、勝手に思い込んでいますが、
できないならばこの話は終わってしまいます。
でも、実行環境をワイド文字にしましょうというよりは、
演算子の再定義が出来るようにしましょうという方が、
可能性はあると思います。
ついでに、標準型への変換も自動的に呼ばれるようになると
うれしいです。
echo $buf;
↓
echo $buf->to_string();
--
sender: Tsukada Takuya (塚田 卓也)
town: inaba hizume, Nagano City (長野市稲葉日詰)