2016-07-12 13 views
1

私は本当にこれで終わりました。私が欲しいのは、$文字列内の番号に何かを追加してストリングを爆発させて数字を追加しますか? php

<?php 
$highest = 0; 
$string = "a.1"; 

$array = explode(".",$string); 
$highest = $array[1]; 

$final = "secound value is: ".$highest++; 

echo $final; 
?> 

コード:私の問題は次のようです。その結果、エコー2が発生するはずです。しかし、エコー1.

何が間違っていますか?

+5

を。 '$ highest ++'のポストを '++ $ highest'に変更してください – Rizier123

答えて

4

使用前インクリメント:

$final = "secound value is: ".++$highest; 

さらに詳しい情報:Incrementing/Decrementing Operators

+1

違いは何ですか?私はこれのようなものがあることを知らなかった。それでおしまい。ありがとうございました! – Johrdon

+0

@Johrdon、理由は私の答えである – Arun

1

理由は$highest++はポストインクリメントされ、ある

<?php 
$highest = 0; 
$string = "a.1"; 

$array = explode(".",$string); 
$highest = $array[1]; 

$final = "secound value is: ". ++$highest; 

echo $final; 
?> 

次のコードを試してみてください。使用後にのみ値がインクリメントされます。そして++$highestがプリインクリメントの場合、最初に値をインクリメントしてから使用します。

+0

ありがとう!私はそれを知らなかった: – Johrdon

1

ポストインクリメントをしています。プリインクリメントを行うと、結果として2が得られます。これは、あなたの望むことですか?

$final = "secound value is: ".++$highest; 
1

ただ答えを出してください。あなたは爆発的に自分自身を救うことができ、必要でないかもしれない配列を保存することができます。

​​3210
+0

私はこれを使用しようとしましたが、結果は$ highest1です。追加操作は追加するのではなく連結を作成します。 –

+1

@ LuigiLopez '$ string =" a.1 "をダブルチェックしました。 $最高= substr($文字列、2)+ 1; echo $ highest; 'そして' 2'をエコーし​​ます。 phpでは '+'は文字列連結に '.'のみ使用できません。 – nerdlyist

0

プリインクリメントとポストインクリメントには違いがあります。

pre-increment-(++$highest) 
    At first increase the value by one then executes the statement. 
post-increment-($highest++) 
    At first executes the statement then increase the value by one. 

この場合、プリインクリメントを使用する必要があります。その値の増分後に行が実行されます。

このコードを試してみてください。それはあなたが変数に代入した後インクリメントますので

<?php 
$highest = 0; 
$string = "a.1"; 

$array = explode(".",$string); 
$highest = $array[1]; 

$final = "secound value is: ".++$highest; 

echo $final; 
?> 
関連する問題