繁体   English   中英

如何用PHP中的空字符串替换0

[英]How to replace 0 with an empty string in PHP

我正在 PHP 中构建报告,并且对这种语言真的很陌生。

我阅读了有关 preg_replace 的文档,但它并没有像我预期的那样工作。

这是我的代码:

    $pattern = 0;
    $replacement = ' ';

    $report_output.= '
        <td>'.preg_replace($pattern, $replacement, round($row[$win_count])).'</td>
    ';

它不是用空字符串替换 0 的结果,而是用空字符串替换所有结果。 这一轮的效果很好,就像这样:

    <td>'.round($row[$win_count]).'</td>

就在我把 preg_replace 放在它周围时,它说“糟糕,我将替换所有东西”。 我究竟做错了什么?

试试这个

$pattern = '/^0$/';
$replacement = ' ';

$report_output.= '
    <td>'.preg_replace($pattern, $replacement, round($row[$win_count])).'</td>
';
  • ^表示匹配字符串的开始
  • 0是匹配一 0
  • $表示匹配字符串的结尾

所以它只会匹配'0'一个零开始到结束而不是像这样的东西hell0结束 0 不会被匹配,因为l不是字符串的开始。

如果您想在任何地方使用任何 0 然后使用它,您的问题会令人困惑

$pattern = '/0/';

带分隔符。

您可以使用简单的速记三元组。

通常: $variable?: ''

如果它是一个假值,那么将使用后备空字符串。

代码:(演示

printf(
    '"%s" vs "%s"',
    round($row[$win_count]),
    round($row[$win_count]) ?: ''
);

Output:

"0" vs ""

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM