[PHP-users 9965] Re: phpの変数に文字が入らない現象について

玉川竜司 php-users@php.gr.jp
Tue, 10 Sep 2002 19:47:10 +0900


玉川です。

PHPは演算子に応じて強引に型変換をかけるので、
+1した時点でそこまでの演算結果が数値に変換
されてしまっているのではないかと思います。

$url = "inline" . $i+1 ."php?data=" . $aCompAft[$i] . ";";

を

>>$url = "inline" . ($i+1) ."php?data=" . $aCompAft[$i] . ";";

とかしてやれば大丈夫だと思いますよ。
--
玉川@STS


NAKAMURA Takeshi wrote:
> 仲村です。
> 
> From: "aiko" <vvv_aiko_vvv@hotmail.com>
> Date: Tue, 10 Sep 2002 10:25:24 +0000
> Subject: [PHP-users 9962] phpの変数に文字が入らない現象について
> 
> 
>>PHPの変数に一部の文字が入らない現象が起きます。
>>
>>$url = "inline" . $i+1 ."php?data=" . $aCompAft[$i] . ";";
>>$frameNm = "inline" . $i+1;
>>の二つの変数に頭の文字"inline"が入りません。
>>
>>デバックしてみると、$url→1.php?data=9;
>>                    $frameNm→1
>>のように表示されます。
> 
> 
>  何となく、PHPが文字と数字を同時に扱えないのではないかと思います。
> 
>>$url = "inline" . $i+1 ."php?data=" . $aCompAft[$i] . ";";
> 
> 
> $j=$i + 1;
> $url = "inline" . $i ."php?data=" . $aCompAft[$i] . ";";
> 
> 
>>$frameNm = "inline" . $i+1;
> 
> $j = $i + 1;
> $frameNm = "inline" . $i;
>  と、置き換えてはいかがでしょうか。
>  あるいは、数値の演算部分を括弧で囲んでも 運が良ければ
> うまくいくかも。
> 
>  文字と、数字の演算を一つの式でやろうとするのが
> PHPの仕様外のように思えます。
> ----+----1----+----2----+----3----+----4----+----5----+----6----+
>  株式会社 シーアールシーシステムズ
>  仲村 武 <ta.nakamura@crs.co.jp>
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>