问题标签 [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.
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 tinker
。echo trans_choice("{0}foo|{1}bar|{2,}baz", 3);
语言环境不应该涉及到这个,因为我使用的是原始字符串,但是为了记录,locale
和locale_fallback
inconfig/app.php
都设置为“en”。
php - Visual Studio 代码中的 PHP 8
我在 Ubuntu 上使用最新版本的 Visual Studio Code (1.52.1) 和 PHP Intelephense 1.5.4。尽管它是最新版本,但似乎不知道新的 PHP 8 语法。例如,它在使用 nullsafe 运算符时显示错误:
有没有办法教 VSC PHP 8 还是我们必须等待更新?
php - PHP8.0.0 中发生了什么破坏 usort(...(int)(strlen($a)
编码
<?php
$consts = get_defined_constants();
$consts = array_keys($consts);
usort($consts,function($a,$b){return (i
编码
如我所料,将在 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。如果我适当地调整你的回调,我会得到预期的输出。
编码
<?php
$consts = get_defined_constants();
$consts = array_keys($consts);
usort($consts,function($a,$b){return (i
编码
如我所料,将在 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。如果我适当地调整你的回调,我会得到预期的输出。
php - 警告:尝试访问 bool 类型值的数组偏移量
登录表单工作正常,但是当我输入错误的用户名时出现错误
警告:尝试访问 bool 类型值的数组偏移量
我有一个包含以下代码的登录表单:
这是给出错误的行:
php - 谁能找到并帮助我这个错误是关于什么的?
错误是:“a ? b : c ? d : e
不推荐使用无括号。使用(a ? b : c) ? d : e
或a ? b : (c ? d : e)
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
.
有人有想法吗?
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() 的东西。
什么不适用于空():
php - php8升级后laravel代客不起作用
我刚刚升级了 brew ..
突然我的macbook上安装了php 8。
之后,Laravel 代客不起作用..
我想知道我是否必须删除 php8 并重新安装 php 7.x 。
或者也许我可以得到如何解决这种情况..
通常使用 Laravel 7/8。
任何人都可以帮助这个?
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。