调用未定义函数 CodeIgniter\locale_set_default() - Xampp

Call to undefined function CodeIgniter\locale_set_default() - Xampp

我正在尝试使用 Xampp 设置 Codeigniter4,但是在调用 public 地址 http://localhost/projectfolder/public/index.php 时,如 CodeIgniter4 框架的 README.md 文件中所述,出现下一个错误:

<br />
<b>Fatal error</b>: Uncaught Error: Call to undefined function CodeIgniter\locale_set_default() in
C:\xampp\htdocs\codeigniter4\system\CodeIgniter.php:184
Stack trace:
#0 C:\xampp\htdocs\codeigniter4\system\bootstrap.php(181): CodeIgniter\CodeIgniter-&gt;initialize()
#1 C:\xampp\htdocs\codeigniter4\public\index.php(36): require('C:\xampp\htdocs...')
#2 {main}
thrown in <b>C:\xampp\htdocs\codeigniter4\system\CodeIgniter.php</b> on line <b>184</b><br />

我试过这个 但它对我不起作用。

有人知道怎么解决吗?

我在 here 中找到了我的临时解决方案,但没有更新 Xampp 中的 PHP 版本。

转到 C:\xampp\htdocs\projectfolder\system\CodeIgniter.php - line 184 并更改下一行。

之前:

locale_set_default($this->config->defaultLocale ?? 'en');

之后:

if( function_exists('locale_set_default' ) ) :
    locale_set_default($this->config->defaultLocale ?? 'en');
    endif;

一旦我将 Xampp 更新到 7.4 版本(download here), I just needed to enable the extension=intl in the xampp\php\php.ini file. As it is explained here,您只需取消注释从 ;extension=intlextension=intl 的行。

那么你可以让 C:\xampp\htdocs\projectfolder\system\CodeIgniter.php - line 184 保持原样。

locale_set_default($this->config->defaultLocale ?? 'en');

问题的根源在于您缺少 PHP 扩展名。 特别是:

请记住,框架的存储库 README.md 文件中清楚地 说明了这一点。

Server Requirements

PHP version 7.4 or higher is required, with the following extensions installed:

Additionally, make sure that the following extensions are enabled in your PHP:

  • json (enabled by default - don't turn it off)
  • xml (enabled by default - don't turn it off)
  • mysqlnd

另外,这里也指出:

Bug: Missing function locale_set_default(...) #3171

Please install intl extension - this is a required component.