问题标签 [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 投票
2 回答
490 浏览

php - PHP 8方法覆盖来自同一BaseClass的不同类型

我的项目在 PHP 7.X 上运行良好,升级到 PHP 8 后出现以下问题,我不知道如何解决。

我有以下(简化的)情况:

我的整个项目都是这样运行的,但是从 PHP 8 开始,我得到了该行的异常

public function output(Car $entity)

带有“致命错误:*** 的声明必须与 *** 兼容”

它与 PHP 7 完美配合!因为“车”也是交通工具。

有人知道如何解决这个问题吗?

谢谢!

0 投票
1 回答
144 浏览

php - 从 php 7.4 迁移到 8(DSO 和实时刷新回显)

问题是关于从 PHP 7.4 迁移到 PHP 8 以及 php 8 的 DSO 等价物。

我在这里读到https://docs.cpanel.net/ea4/php/php-8/ PHP 8 和 DSO 不再兼容...

那么有什么选择呢?

我使用 DSO 的方式:上下文 ob_flush / ob_implicit_flush / 每个“回声”输出并且仍然继续执行。

当我尝试时的示例:在一个 ajax 的实时 MEGA 长时间执行中,实时反馈在执行时返回到 html

在这种情况下,当 php 执行时,我看到“你好”,“被调用”出现几秒钟后,等等。

在我的 DSO 设置中,脚本不必等待完全完成即可开始输出。

在 PHP 8 中,我们如何实现这一点?

0 投票
0 回答
2393 浏览

php - 升级到 php8 后 Composer 版本锁定问题

升级到 php8 后,我现在在运行任何 composer 命令(composer、install 或 composer update)时都会遇到问题。当我这样做时,我收到此错误:

在这里我试图安装unicodeveloper/laravel-paystack 请问我该如何解决这个问题?

我在尝试启动我的另一个 Laravel 项目时也得到了他:

0 投票
1 回答
310 浏览

php - PHP 8:如何在属性中声明关联数组

我有这个控制器注释:

我想将其转换为 PHP 8 属性。但是如何传递defaults参数的关联数组呢?这有效:

但这不是:

我应该怎么做?

0 投票
1 回答
33 浏览

php - PHP for循环不访问参数中传递的变量但可以在for循环外部访问

您好,我正在编写自己的 php 特定框架,因为其他框架无法完成我想要完成的工作,

这是一项任务的庞然大物,我决定更改我的“路由系统”,这需要我预加载从$settings参数中拖入的选定类。我正在将“设置”类传递给正在访问的类构造函数参数,我检查了数组计数并检查了它是否是它,但是一旦它进入 for 循环,它就为空

Warning: Undefined variable $settings in /***/*****/****/PHPFRAMEWORK/System/App.php on line 6

for 循环只是为了预加载添加到 Settings 类中的类。

我的问题是

  • 这段代码有什么问题?
  • 这是特定于 PHP 的问题吗?
0 投票
0 回答
197 浏览

php - Laravel PHP8 Coverage 无法识别具有提升属性的构造函数

我在我的Laravel 8项目中使用PHP 8构造函数属性提升功能。它工作得很好,但是当您尝试对其进行测试时,覆盖范围不会将构造函数视为已测试

套餐:

  • laravel/框架:^8.12
  • phpunit/phpunit: ^9.5

覆盖报告:

覆盖报告

0 投票
0 回答
215 浏览

php - 如何解决 PHP 8.x 中关于 NumberFormatter 的新错误/行为变化?

在我竭尽全力恢复 PHP 7.4.13 以确保它之前,我以为我快疯了。它在 PHP 8.x 中发生了变化

代码:

PHP 7.4.13 中的输出:

PHP 8.0.1 中的输出:

结论:

有些事情发生了变化。

问题:

如何让 PHP 8.0.1 表现得像以前一样?

澄清:

即,以“最小”的方式输出的货币总和,仅用数字。

预测一:

有人可能会这样回答:“只需手动输出这些情况下的数字!”

对此,我回应:它必须是货币模式下的数字格式化程序。在如何格式化货币金额方面,地区/语言之间存在巨大差异。我需要使用它并告诉它放弃符号。

预测二:

有人可能会这样回答:“只需将 str_replace/preg_replace 符号替换掉!简单!”

对此,我回应:并非所有语言环境/语言都使用相同的格式。这是一门具有多种不同格式的完整科学,无法通过简单的字符串替换来解释。

我想正确地做这件事,这就是我认为的。直到现在,当 PHP 8 决定改变这一点时。我不确定这是一个错误还是什么。

研究:

我在这里找不到任何关于 PHP 8 的提及:https ://www.php.net/manual/en/numberformatter.formatcurrency.php

0 投票
4 回答
8584 浏览

php - Phpmyadmin 5.1.0.RC1 & 5.0.4 错误(./libraries/classes/Config.php#1285 mkdir() 中的警告:权限被拒绝)

我在 ubuntu 服务器 20.04 上测试 phpmyadmin 5.0.4 和 5.1.0.RC1,我收到以下错误:

我尝试通过 www-data (原始“root”)更改我的 ./libraries/classes/Config.php 和 /var/lib/phpmyadmin/tmp/twig (也创建了这个文件夹“twig”)的所有者,但是错误没有解决。

我的供应商配置是:

我使用 php8.0。

谢谢你的支持!

0 投票
2 回答
666 浏览

php - 在 PHP 8 中使用 call_user_func 返回致命错误

我正在尝试使用函数handleContact 调用名为ContactController的类,但出现以下错误:call_user_func([ContactController::class, 'handleContact']);

致命错误:未捕获错误:无法静态调用非静态方法 app\controllers\ContactController::handleContact()

0 投票
1 回答
564 浏览

php - Microsoft 从 PHP 8 起终止对 PHP 的支持

我已经读到微软从 PHP8 起将不再支持 PHP。整个意思很模糊。我真正想知道的是 PHP8 在 Windows 上根本不能工作吗?因此使所有 WAMP 服务器应用程序无用,因此需要切换 Linux 或 Mac 以进行所有未来的开发工作?