使用从字符串中提取的数字

时间:2017-10-07 07:29:32

标签: php numbers substring

我是php的新手,我知道我犯了一些愚蠢的错误,但即使结果与预期不同,代码似乎也能正常工作。

我正在尝试将“To step 1”这样的字符串更改为“To step 2”,但我无法提取数字并将其递增。

我已经看到了很多问题并尝试了很多方法,如下面的代码所示。

请告诉我我错在哪里。

编辑:我注意到$ CurStep似乎在else块中没有值

$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。我还在http://phptester.net/上测试了这段代码以检查它是否是我的电脑故障,但结果是相同的

1 个答案:

答案 0 :(得分:1)

<强> 1.更改

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

要: -

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

2.I 不知道为什么你做了那么多东西。您可以轻松地执行以下操作: -

<?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);

输出: - https://eval.in/875629

注意: - 同样地,你也可以To step 0而不是+1 do -1 )。如果你不能让我知道。我也会加上