[PHP-dev 367] Re: {} 演算子

Tsukada Takuya php-dev@php.gr.jp
Fri, 10 May 2002 00:28:59 +0900 (JST)


こんにちは、塚田です。

廣川 さん:
> 
> {} 演算子については、ZE/ZE2のコードを少し見てマルチバイト対応の
> プロトタイプみたいなのを連休中に作ってみました。
> もちろん{}で文字数を数えるという機能で、バイト列を数えるということには
> 対応していません。(できません。)
> この辺は新規の機能なので「文字数を数える」ということで啓蒙を
> はかるのがよいのではと思っています。

単純にchar[]あるいは、byte[]のように使える型がほしいときも
ありますね。必須というほどではないですけど。
もしかして [] のほうはバイト単位で動作するとか、そんなことは
無いですよね。


> 
> バイト毎の長さを見てオフセットしているだけでまだEUC-JPでしか
> 動きませんが、それなりに動いています。
> 藤本さんのzend_multibyte.*に定義されているバイト配列を
> 使って実装しようと思っています。 
> ZE2になってもこの辺の基本的なところは変わらない可能性が高いので。

文字コードの指定は、どうなるのでしょうか?
 コンパイルのオプション、php.ini などなど...


> 
> 演算子のオーバーロードについては、できると便利だとは思いますが、
> たしかに遅くなるかもしれませんね。
> 

object型については、

  $var = $obj{ index };
  $var = $obj[ index ];
  $var = $obj{ "porperty" };
  $var = $obj[ "porperty" ];
  $var = $obj->porperty;

というのがすべて、

  $var = $obj->__get(index, value);
  $var = $obj->__get(porperty, value);

という感じで実行できそうなので、どこまで文法的に許されるか
になると思います。
あまり難しいことは無理かもしれませんが、

  if ($buf[$buf->length() - 1]  == "\n") {
    ...

くらいのことは出来そうな気がします。


-- 
sender: Tsukada Takuya (塚田 卓也)
town: inaba hizume, Nagano City (長野市稲葉日詰)