2017-11-07 12 views
2

に変数の変更:テキスト+私はそのような変数を作成したい番号のPHP

$k = 1; 
print_r('A'.$k+2); 

と出力は「2」です:「A3」 私はそのコードを書きました。どうして?

+0

は、なぜあなたはしますprint_rを使用していますか?ちょうどエコーを使用する、何らかの理由でこのコメントを削除することはできませんが、あなたはまだかっこが必要です。 – brianforan

答えて

1

おそらく、print_r関数の外ですべての算術演算を行うことができます。

$k = 1; 
$r = $k + 2; 
$z = 'A' . $r; 
print_r($z); 

印刷する前に算術演算が実行されていないため、印刷は2のみです。

+0

この答えは理由を説明しません。 – jaswrks

0

これは2 ...

<?php 
$k = 1; 
print_r('A'.$k+2); 

がなければならないよう($k+2)周りに括弧がありませんを出力する理由。

だから何が起こっているPHPのデフォルトoperator precedenceが使用され、代わりに$k+2'A'を連結し、+オペレータが最高の優先されるということです。

したがって、期待通りに連結されていません。代わりに、2つの値を一緒に追加しています。 PHPは'A'$kをとり、2を追加しています。そして'A'$kは整数で、0なので、0+2となり、2となります。この問題を解決するには

、使用:

<?php 
$k = 1; 
print_r('A'.($k+2)); 
関連する問題