2017-10-07 12 views
0

私はPHPを使い慣れていません。私はいくつかのばかげたミスをしていますが、結果が期待と異なる場合でもコードは機能するようです。文字列から抽出された数字を使って作業する

"To step 1"のような文字列を "To step 2"に変更しようとしていますが、数字を抽出してインクリメントすることができません。

私は多くの疑問を見て、以下のコードのように多くの方法を試しました。

私が間違っている場所を教えてください。

編集:私は$ CurStepが

$CurStep='To step 1'; 
echo $CurStep.'<br>'; 
    if($CurStep=null){ 
     $BtnFwdName='To step 1'; 
     $BtnBackName=null; 
     $Step=0; 
    }else{ 
     $Step=substr($CurStep,-1,1); 
     echo '<br>step substr='.$Step; 
     $Step=filter_var($CurStep, FILTER_SANITIZE_NUMBER_INT); 
     echo '<br>step filter='.$Step; 
     $Step= $CurStep; 
     preg_replace("/[^0-9]/","",$Step); 
     echo '<br>step replace='.$Step[0]; 
     $BtnBackName="To step ".$Step-1; 
     $BtnFwdName="To step "; 
     $BtnFwdName.=$Step+1; 
     echo '<br>step final='.$Step; 
    } 
echo '<br>BtnFwdName='.$BtnFwdName; 
echo '<br>'; 
echo 'BtnBackName='.$BtnBackName; 

N.B.をブロックし、他に何の値を持っていないように見えることに気づきましたまた、私はそれが私のPCのせいだったかどうかをチェックするためにhttp://phptester.net/にこのコードをテストしてみたが、結果は同じに

答えて

1

1.change

if($CurStep=null){ // this is not comparison,it's an assignment

です: -

if($CurStep==null){ // now it's an assignment

2.Iなぜそれほど多くのことをしたのか分かりません。 (代わりに+1のやる-1)を同じ方法であなたもTo step 0のために行くことができます - :https://eval.in/875629

注 - :

<?php 

$CurStep='To step 1'; 
// explode string to make it an array 
$exploded_array = explode(' ',$CurStep); 
// increase the last value of array to 1 
$exploded_array[count($exploded_array)-1] = $exploded_array[count($exploded_array)-1]+1; 
// again convert array to string and echo it 
echo $newcurStep = implode(' ',$exploded_array); 

出力 - :あなたは簡単に以下のように行うことができます。あなたが私に知らせることができないならば。私もそれを追加します

関連する問題