为什么在被函数修改后该字符串为空?

时间:2016-12-06 21:04:46

标签: php scope

所以我只是试图用字符串中的破折号替换空格:

    $string = "Some string with spaces";

输出应为Some-string-with-spaces

下面的函数可以做到这一点,但是在函数之后尝试访问变量,它就像没有被更改一样空白。

$url_title_piece = "";

  function spaceDashReplace($string, $url_title_piece) {
    $string_length = strlen($string);
    for ($i = 0; $i < $string_length; $i++) {
      if ($string[$i] === " ") {
        $url_title_piece = $url_title_piece . "-";
      }
      else {
        $url_title_piece = $url_title_piece . $string[$i];
      }
    }
  }

  spaceDashReplace($string, $url_title_piece);
  echo 'modified string ' . $url_title_piece; // outputs modified string not modified string Some-string-with-spaces

如果在for循环结束时返回修改后的$ string,我能得到我想要的东西。

我使用JavaScript和PHP,所以我混淆了一些事情,比如我猜你没有用JavaScript关闭PHP。

编辑:我也意识到我应该使用某种字符串替换而不是这样做。

0 个答案:

没有答案