numfmt_format()期望参数1为NumberFormatter, null给定


numfmt_format() expects parameter 1 to be NumberFormatter, null given

我最近升级了我的WAMP服务器,我似乎不能让Intl扩展工作。我已经确保

  • 两个ini文件中的扩展名路径是正确的
  • 扩展是加载在两个inis
  • 我可以看到扩展与php --re intl
  • 我可以看到php --rf numfmt_create
  • 的示例函数
  • 我有icu dll文件在我的php文件夹(icu 46, php 5.3.8, wamp 2.2)
  • 我已经将C:'wamp'bin'php'php5.3.8添加到系统变量
  • 的PATH中
  • 代码正确- wamp升级前的工作代码和php手动示例代码失败

我试图使用数字格式化器,但它给了我一些奇怪的错误。以下是php手册中的示例代码:

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo numfmt_format($fmt, 1234567.891234567890000)."'n";
$fmt = numfmt_create( 'it', NumberFormatter::SPELLOUT );
echo numfmt_format($fmt, 1142)."'n";
?>

它给了我这个:

遇到PHP错误

严重性:警告

消息:numfmt_format()期望参数1是NumberFormatter,空给

文件名:控制器/test.php

行号:867

回溯:

文件:C:'wamp'www'application'controllers'test.php行:867功能:numfmt_format

File: C:'wamp'www'index.php Line: 260 Function: require_once


遇到PHP错误

严重性:警告

消息:numfmt_format()期望参数1是NumberFormatter,空给

文件名:控制器/test.php

行号:869

回溯:

文件:C:'wamp'www'application'controllers'test.php行:869功能:numfmt_format

File: C:'wamp'www'index.php Line: 260 Function: require_once

我注意到numfmt_create()似乎返回NULL,无论我做什么。

您可以从ICU运行icuinfo.exe工具来查看ICU是否正确加载其数据?

显然64版本的WAMP没有正确的icu单元-使用32版本工作