[PHP-dev 1216] クラス内メンバ変数にrangeは、使えない?

Kazuhiro IIzuka ezka1209 @ at-duplex.bias.ne.jp
2006年 1月 24日 (火) 20:49:46 JST


はじめまして、飯塚です。

クラス内のメンバ変数内にrange関数は使えないのでしょうか?
例えば、次のような、クラスに変数aがあるとします。

// test.php
class A{
var $a = array(
   array("b",'test1',array('foo'=>"bar")),
   array("c",'test1',array('foo'=>3)),
//    array("d",'test1',array("in"=>array(3,4,5)) ),
   array("d",'test1',array("in"=>range(3,5)) )
 );
}

シェルから、このスクリプトを試すと、次のようなエラーとなってしまいました。
$ php -q test.php
Parse error: parse error, unexpected '(', expecting ')' in
(スクリプトのフルパス) on line (rangeを使った行番号)

このrangeの部分をarray(3,4,5)に書き換えたものにして、rangeを使わずに、
arrayで書き換えたものにすると、正常に、parseできます。

また、クラスの外にこの変数を出してみて、
同様に、シェルからスクリプトを試すと、parseでき、print_rで表示すると、
期待している値となっていることが確認できています。

環境は、PHP 4.4.1/PHP 5.1.2を試してみて、
共にparser errorが出てしまっています。

ざっと、bugs.php.netでみてみたのですが、見つからない。
これって、仕様でしょうか?それとも、PHPのバグなんでしょうか?


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