相关疑难解决方法(0)

PHPUnit - 断言两个字符串相等失败

我有一个单元测试,我试图测试NumberFormatter.

\n\n

我的代码的简化版本是:

\n\n
public function testGetFormattedPrice()\n{\n    $formatter = NumberFormatter::create(\n        "de_DE",\n        NumbererFormatter::CURRENCY\n    );\n\n    $this->assertEquals(\n        \'16,66 \xe2\x82\xac\',\n        $formatter->formatCurrency(16.66, "EUR")\n    );\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这会导致失败:

\n\n
Failed asserting that two strings are equal.\n--- Expected\n+++ Actual\n@@ @@\n-\'16,66 \xe2\x82\xac\'\n+\'16,66 \xe2\x82\xac\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我假设这与欧元符号(可能是字符编码)或字符串中的某种隐藏字节有关,但不太确定如何检查这一点?

\n\n

谁能给我一些关于如何调试这个问题的建议,或者可能的原因是什么?

\n\n

干杯,

\n\n

\n

php phpunit unit-testing

6
推荐指数
1
解决办法
9084
查看次数

如何在 PHP 中用单个空格正确替换多个空格?

我正在浏览 SO 答案,发现大多数用于替换多个空格的解决方案是:

$new_str = preg_replace("/\s+/", " ", $str);
Run Code Online (Sandbox Code Playgroud)

但在很多情况下,空格字符包括 UTF 字符,包括换行、换页、回车、不间断空格等。 这个 wiki描述了 UTF 定义了二十五个定义为空格的字符。

那么我们如何使用正则表达式替换所有这些字符呢?

php regex unicode

4
推荐指数
1
解决办法
3305
查看次数

标签 统计

php ×2

phpunit ×1

regex ×1

unicode ×1

unit-testing ×1