7得票4回答
让PHP7和PHP8共存

让PHP7和PHP8共存 我从PHP7升级到了PHP8。通常情况下,我的/usr/bin目录下依然有php7.4(与php8.0并存)。但是,当我运行php -v命令时,它的回答是php8.0,这在PHP中经常出现。 自那以后,当我尝试安装软件(例如Docker和VirtualBox)时,...

25得票1回答
类型可调用是否支持类型属性?

我搜索了原因,但没有找到任何原因。 我尝试创建一个类型为“callable”的属性。但是PHP给我一个致命错误“无法使用类型callable”。在RFC中,并没有提到callable不是属性类型提示的允许类型之一。相反,有一些例子,在其中使用了“callable”来作为类型属性。 参见: ...

18得票3回答
尝试访问空类型值的数组偏移量

从php 7.1升级到7.4。我们有大约500个用于测试API的功能测试,迁移完成后其中一些开始出现错误而失败。在此之前,这些测试无论在哪里都是通过的,而现在则无法通过 - 并非全部,只有39个。 环境信息: php 7.4 codeception yii2 堆栈跟踪:...\api...

212得票1回答
使用花括号的数组和字符串偏移访问语法已经过时。

我刚刚将我的php版本更新到7.4,然后注意到出现了以下的错误: 使用花括号的数组和字符串偏移访问语法已被弃用 以下是导致上述错误的代码的一部分:public function getRecordID(string $zoneID, string $type = '', string $n...

9得票4回答
在PHP 7.4中重写匿名函数

以下是一个匿名递归函数: $f = function($n) use (&$f) { return ($n == 1) ? 1 : $n * $f($n - 1); }; echo $f(5); // 120 我尝试将版本重写为7.4,但出现错误,请告诉我我缺少了什么?...

154得票2回答
当我引入属性类型提示时,为什么突然出现"Typed property must not be accessed before initialization"的错误?

我已更新我的类定义,以使用新引入的属性类型提示,就像这样: class Foo { private int $id; private ?string $val; private DateTimeInterface $createdAt; private ?D...

22得票3回答
如何在PHP中使用箭头函数?

我了解到 PHP 7.4 中的箭头函数,并尝试使用它们,例如:<?php $num = 1; $arrowfunction = () => { return $num + 1; } echo $arrowfunction(); 因为我在pull request中看到了=&gt...

19得票2回答
在PHP 7.4中如何检查属性是否已经真正初始化。

我想在PHP 7.4中检查属性是否已经初始化。将属性设置为null意味着它被初始化为null,但我不能使用isset,因为它即使被设置为null也会返回false。同时我也不能使用property_exists,因为即使未初始化该属性,它也会返回true。 我所知道的唯一方法是使用Reflec...

54得票2回答
在PHP 7.4中尝试访问布尔类型值的数组偏移量

我刚将服务器的PHP版本升级至PHP 7.4.1,现在出现了以下错误: 注意:尝试访问布尔类型值的数组偏移量 public static function read($id) { $Row = MySQL::query("SELECT `Data` FROM `cb_s...

13得票3回答
在箭头函数中使用变量的引用

PHP 7.4 引入了箭头函数,同时还引入了隐式按值作用域绑定,消除了使用 use 关键字的需要。 如果我们想通过引用在常规匿名函数中使用闭包范围外的变量,我们会这样做:$num = 10; call_user_func(function() use (&$num) { $num +...