问题标签 [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 回答
236 浏览

php - PHP 8.0 升级后 Laravel trans_choice 无法正常工作

我在功能测试中有以下断言:

这在 PHP 7.4 中没有问题。在没有对我的应用程序代码进行任何更改的情况下,我更新到 PHP 8.0,现在看到:

有问题的控制器代码如下所示:

所以我的问题是trans_choice由于某种原因在 PHP 8.0 中返回了单数项。

我无法解释为什么会发生这种情况。回到 PHP 7.4,一切都再次过去了,所以它肯定与 PHP 版本相关联。故障排除很困难,因为当我启动时,无论我使用的是 PHP 7.4 还是 8.0,我总是得到“bar” artisan tinkerecho trans_choice("{0}foo|{1}bar|{2,}baz", 3);

语言环境不应该涉及到这个,因为我使用的是原始字符串,但是为了记录,localelocale_fallbackinconfig/app.php都设置为“en”。

0 投票
1 回答
4400 浏览

php - Visual Studio 代码中的 PHP 8

我在 Ubuntu 上使用最新版本的 Visual Studio Code (1.52.1) 和 PHP Intelephense 1.5.4。尽管它是最新版本,但似乎不知道新的 PHP 8 语法。例如,它在使用 nullsafe 运算符时显示错误:

有没有办法教 VSC PHP 8 还是我们必须等待更新?

0 投票
3 回答
3216 浏览

php - PHP8.0.0 中发生了什么破坏 usort(...(int)(strlen($a)

编码

如我所料,将在 PHP 8.0.0 之前从最长到最短打印所有定义的常量。7.3.13 开始于

但我不知道 PHP8.0.0 做了什么,它的输出以:

您可以在 3v4l 上自己查看:https ://3v4l.org/MP2IF

那么在 PHP 8.0.0 中发生了什么来破坏这段代码呢?


我不知道内部发生了什么变化导致了这种差异,但是您的排序回调有点时髦。如果 $a 和 $b 在功能上“相等”(在这种情况下,如果它们具有相同的字符串长度),它应该只返回 0。否则,如果 $a 应该在 $b 之前排序,它应该返回 1,否则返回 -1。如果我适当地调整你的回调,我会得到预期的输出。

3v4l:https ://3v4l.org/UScFO

0 投票
1 回答
2146 浏览

php - 警告:尝试访问 bool 类型值的数组偏移量

登录表单工作正常,但是当我输入错误的用户名时出现错误

警告:尝试访问 bool 类型值的数组偏移量

我有一个包含以下代码的登录表单:

这是给出错误的行:

0 投票
1 回答
856 浏览

php - 使用 PHP8 迁移 Codeigniter 3 时没有有效的“向上”方法

我刚开始使用 CodeIgniter 3,我知道它已经过时了,但任务已设置为使用它。而我马上就遇到了一个问题,在网上翻遍了也没有找到答案。

在我看来,我只是错过了一个小细节。请帮助引导我走上真正的道路。

迁移

迁移.php

迁移.php

我的错误:

迁移类“Migration_Add_blog”缺少“up”方法。

在此处输入图像描述

0 投票
1 回答
40 浏览

php - 谁能找到并帮助我这个错误是关于什么的?

错误是:“a ? b : c ? d : e不推荐使用无括号。使用(a ? b : c) ? d : ea ? b : (c ? d : e)

0 投票
0 回答
923 浏览

php - 如何在 laravel hometed 中使用 php 8

我只是将 laravel homestead 更新到最新版本v10.17.0。我还更新了虚拟盒子和流浪者。应该支持与 laravel homestead 文档相关的 php 8,但我无法设置。

PHP 7.4 仍然是默认版本,但这不是问题,因为我只想将版本 8 用于一个项目,并且我针对特定站点进行了设置php: '8.0'Homestead.yaml但完全没有影响。我还看到在 vagrant 中有一个切换到版本 8 的功能,但我得到了command not found.

有人有想法吗?

0 投票
3 回答
1178 浏览

php - 如果零浮点值作为字符串传递,则 empty() 返回 true

当使用 MYSQL 函数将小数作为字符串返回时,使用 PHP 的 MySQL 有时会很烦人。是否有一个函数来检查一个变量是否是其中的任何一个?

null、(bool)false、(int)0、(float)0.00、(string)""、(string)"0"、(string)"0.00" 或 (array)[]。

empty()几乎可以完成这项工作,但有时会以字符串形式返回这些 mysql 十进制值。isset() 和 is_null() 在 PHP 7 和 8 中的操作方式不同。我缺少类似 emptyish() 的东西。

什么不适用于空():

0 投票
1 回答
1365 浏览

php - php8升级后laravel代客不起作用

我刚刚升级了 brew ..

突然我的macbook上安装了php 8。

之后,Laravel 代客不起作用..

我想知道我是否必须删除 php8 并重新安装 php 7.x 。

或者也许我可以得到如何解决这种情况..

通常使用 Laravel 7/8。

任何人都可以帮助这个?

0 投票
0 回答
2786 浏览

php - 如何为 PHP 8 设置 VS Code 扩展 Intelephense?

我想将我购买的 Visual Studio Code 扩展设置为使用 PHP 8 版本,因为它的“智能感知”功能。

检查defaultSettings.json'intelephense' 搜索查询会得到很多点击,但只有一个对我来说因为升级到 PHP 8 而脱颖而出:

这可能应该在工作区设置中更改.vscode\settings.json

还有什么需要改变的吗?

我正在使用安装了 PHP 7.2 和 8.0 的 Laragon 进行本地开发。登台和生产服务器使用 PHP 8.0。