问题标签 [php-8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2246 浏览

php - 将 ZipArchive 与 PHP 8 和临时文件一起使用

PHP 8 改变了 ZIP 存档的“打开”方式,并指出:

不推荐使用空文件作为 ZipArchive。Libzip 1.6.0 不再接受空文件作为有效的 zip 存档。

在下面的测试代码中,打开名为 ZIP 文件的文件$backupzip没有错误,但打开 ZIP 文件名$invoicezip失败并出现错误:

不推荐使用:ZipArchive::open():在第 12 行不推荐使用空文件作为 ZipArchive

0 投票
3 回答
16342 浏览

php - OM\Db::query(string $statement) 的声明必须与 PDO::query 兼容

我刚刚安装了 PHP 8 并且出现了这个错误?我如何解决它?

致命错误:OM\Db::query(string $statement) 的声明必须与 /home/www/includes 中的 PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs) 兼容/OM/Db.php 在第 131 行

我的 OM/Db.php

0 投票
1 回答
4722 浏览

php - 未与 PhpStorm 建立连接 Xdebug 3

下午好。

当尝试在 PHP 8 上调试脚本时,PhpStorm 报告与版本 3 xdebug 没有连接。适用于 3 以下的所有版本。我尝试将 xdebug.remote_{host, port} 的参数更改为 xdebug.client_{host, port} 但也没有帮助。

0 投票
1 回答
88 浏览

php - 当字符串小于 PHP 8 中的起始字符时 substr 返回一个空字符串

PHP 文档substr()说:

如果字符串的长度小于起始字符,则返回 FALSE。

并给出了例子

有趣的是,从 PHP 8.0.0rc1 开始,这似乎不是真的,因为在较新的版本中,该函数返回一个空字符串:

https://3v4l.org/RPU1s

这是 PHP 中的错误还是未记录的更改(或者我误解了什么)?

0 投票
1 回答
508 浏览

php - `iconv` 需要安装什么才能使用 PHP8

我正在尝试迁移doctrine/rst-parser到 Github 操作,最后一个障碍是测试因调用而失败iconv

iconv('utf-8', 'us-ascii//TRANSLIT', $text)

测试失败

我已经尝试安装libc6ubuntu 包,并安装iconvPHPintl扩展,没有骰子。我应该尝试什么?

这是拉取请求的链接:https ://github.com/doctrine/rst-parser/pull/126

编辑:解决方案似乎是做 asetlocale(LC_ALL, 'en_US');,但false出于某种原因,它会在 github 操作上返回。

0 投票
2 回答
602 浏览

php - 如何在 PHP 中使用“Nullsafe 运算符”

有没有办法Nullsafe operator在php中使用条件?

0 投票
3 回答
399 浏览

php - PHP 8 发生了什么变化,导致 imap_msgno() 在昨天与 PHP 7.4.12 完美配合时声称“错误消息编号”?

我有一些噩梦般的 IMAP 代码,这让我花了很长时间来编写代码。当 7.x 是当前的 PHP 时,我做到了,并且多年来我一直使用它来将我的电子邮件提取到我的 PHP 系统中,没有任何这样的问题。

昨天,PHP 8 终于作为“GA”(稳定版)发布了。我更新了。果然,更新软件时总会有一些奇怪的问题。现在,我的 IMAP 代码用这些废话淹没了日志:

相关代码片段:

我已经双重验证这$message_number_array确实是一个整数数组,没有别的。它直接来自imap_search. 这些号码怎么可能是“坏消息号码”?

是的,我一直在到处使用 UID。与昨天与 PHP 7.4.12 完美配合时相比,我的代码没有任何改变。

像往常一样,当我搜索时,网上的相关信息为零。

在这种情况和这种情况下我该怎么办?我什至不明白这是怎么可能的——更不用说我将如何解决它了。

0 投票
3 回答
1407 浏览

php - php 7.4 mongodb dll 文件(1.9.0) 与 windows 10 系统上的 php 8 不兼容

如您所知,PHP 8 发布了,我很兴奋并想尝试一下。但是我对 MongoDB 有要求,我尝试将 7.4 的 MongoDB dll 文件添加到 php8,它给出了类似的错误。

我在我的 php.ini 中添加了

dll文件版本是1.9.0(据说它与php8兼容)但它是针对PHP 7.4的,我找不到php8版本的dll文件,任何人都可以在这里帮助我。

0 投票
2 回答
1788 浏览

php - 将 php 更新到 php 8 后 guzzlehttp/guzzle 不起作用

我使用Laravel 8guzzlehttp/guzzle中的包。升级到PHP 8后,我得到:

Symfony\Component\ErrorHandler\Error\FatalError: Invalid opcode 117/2/0. in file ../vendor/defuse/php-encryption/src/Core.php on line 412

作曲家.json:

php -v

UPD 1如果我opcache_reset ();之前打电话$this->client = new \GuzzleHttp\Client; $response = $this->client->post(...),它的工作原理。

UPD 2 $ service php8.0-fpm reload - 没有帮助。

UPD 3重新启动服务器没有帮助。

我怎样才能解决这个问题?

0 投票
1 回答
349 浏览

php - 为什么 opcache 没有被刷新?

我使用Laravel 8guzzlehttp/guzzle中的包。升级到PHP 8后,我得到:

Symfony\Component\ErrorHandler\Error\FatalError: Invalid opcode 117/2/0. in file ../vendor/defuse/php-encryption/src/Core.php on line 412

nginx配置:

PHP 7.4 被删除

如果我opcache_reset ();之前打电话,我不会得到错误。