2

2つの整数を追加し、その結果を文字列に連結したいと思います。つまり、次のようになります。

に1を追加し$i、その結果を文字列に連結します'icon'。次の構文が機能すると思いました。

$x = 'icon'.$i+1;

しかし、それは私が望むことをしません-それは値'icon1'を無視し続け、値を返し続けます$i

私がやりたいことをする正しい方法は何ですか?

4

3 に答える 3

2

試してみてください:

$i = 0; // init $i
$x = 'icon'.($i+1);

$i変数を定期的にインクリメントしたい場合:

$x = 'icon'.(++$i);
于 2013-03-18T08:33:32.163 に答える
1

Operator Precedenceは、これが起こっている理由を説明しています。

括弧を使用できます:

$x = 'icon'.($i+1);

これでうまくいくはずです。

私のテスト:

$i = 18;
$x = 'icon'.($i+1);
var_dump($x);

--> string(6) "icon19"
于 2013-03-18T08:36:03.160 に答える
1

これを試して :

$temp = $i+1;
$x = 'icon'.$temp;

「演算子の優先順位」が原因で、間違った回答が得られます。

このリンクを参照してください: http://php.net/manual/en/language.operators.precedence.php

次の行を参照してください。left + - . arithmetic and string

.よりも優先順位が高い+ので、式は次のようになります。$x = ('icon'.$i)+1;

それを解決するには、上記の方法または hsz answer を使用します

すなわち:$x = 'icon'.($i+1);

于 2013-03-18T08:33:56.953 に答える