[PHP-users 28842] Re: 配列処理について

TAKAGI Masahiro matakagi @ osk2.3web.ne.jp
2006年 3月 27日 (月) 12:57:58 JST


高木です。
php-doc にも Cc: しておきます。current() 関数のマニュアルにある「警告」
の文言についてのお話です。

At Sun, 26 Mar 2006 06:24:06 +0900,
Shu Sawada wrote:
> 
> さわだです。
> GUSTAVさん、回答ありがとうございます。
> 
> > 日本語に訳すとこうなるんでしょうが、英語のマニュアルの方を見てみると
> > 「return FALSE for these elements as well」
> > となってるみたいなので、「0や空の文字列と同様にFALSEを返す」
> > つまり
> > 「条件式に用いた場合はFALSEと見なされるよ」
> > というのが真意なのでしょう。
> > それにしても誤解を招きやすい記述ですね(^_^;)
たしかに(^_^;) ちょっとわかりにくいかもしれませんね。

> 
> なるほどです。
> 一応英語ドキュメントも見てはいたんですが、英語の読解すらあやしいので
> 行間までは読めませんでした ^^;
> 「明示的に厳密な比較演算子を使って条件付けないと、FALSEはごっちゃになるよ」
> ぐらいの記述だと混乱しなかったのですが(苦笑
> 
ただ、厳密な比較演算子を使用したところで、
 $x = array(false, true, true, false);
みたいな配列を渡すと同じようになってしまうという罠があります。結局この
ような処理には current() は使えないということですね。

というわけで、マニュアルを少し書き直してみました。

(現行)
英: If the array contains empty elements (0 or "", the empty string)
    then this function will return FALSE  for these elements as well.
日: 配列中に空の要素(0または空の文字列"")がある場合、この関数はこれら
    の要素についてFALSEを返します。

(変更案)
英: If the array contains empty elements (0 or "", the empty string)
    then this function will return a value which evaluates to FALSE
    for these elements.
日: 配列中に空の要素(0または空の文字列"")がある場合、これらの要素につ
    いてこの関数が返す値は FALSE と評価されます。

もしこれで問題がないようでしたら、このように書き換えてみますが、いかか
でしょう?

-- 
高木 正弘 mailto:matakagi @ osk2.3web.ne.jp


PHP-users メーリングリストの案内