13得票2回答
Symfony3表单组件在 PHP 7 中试图将null传递给一个类型提示的方法

在我的实体类中,我定义了所有setter的期望参数类型和getter的返回类型。稍后,当我有一个使用该类的表单时,如果表单中的某些字段为空,我会收到一个错误提示,因为表单组件试图将null传递给setter而不是字符串。 当我提交表单时,我会得到以下异常: Expected argument...

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

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

12得票5回答
PHP 7中出现“分配JIT内存失败,PCRE JIT将被禁用”的警告

我正在将我的网站从安装在共享 Web 托管帐户(DreamHost)上的 PHP v.5 迁移到运行 PHP 7.3.11。迁移后,我开始注意到偶尔会收到这些警告: 警告:preg_match_all():JIT 内存分配失败,PCRE JIT 将被禁用。这可能是由于安全限制引起的。要...

13得票1回答
PHP7的PDO扩展是否会将整个结果集读入内存?

我注意到自从我升级到PHP7后,一些SQL语句不再起作用,而是会耗尽内存。 我有以下代码:$query = Yii::$app->db->createCommand('select * from tbl_title')->query(); while ($row = $re...

20得票1回答
PHP的返回类型提示,是对象还是布尔值?

所以我知道在php7中可以进行返回类型提示。我可以使用以下代码进行对象返回提示:function getUser($pdo, $username) : User { } 返回的对象是用户(User)。 然而,如果在SQL中没有找到该用户,则返回'false'而不是User对象将导致以下错误:...

8得票2回答
PHP 7的多字节(mb_)函数比5.3版本慢了大约60%(仅限于Windows系统)。

我的应用程序广泛使用 mb_ 字符串函数,升级到 php 7 后导致应用程序整体变慢。我把问题追踪到了 mb_ 字符串函数上。以下是基准测试代码和结果: $time = microtime(); $time = explode(' ', $time); $start = $time[1] ...

126得票10回答
mcrypt已经被弃用,有什么替代品?

根据此处发布的评论,mcrypt扩展已经被弃用,并将在PHP 7.2中被删除。因此,我正在寻找替代方法来加密密码。 目前我正在使用类似于以下内容:mcrypt_encrypt(MCRYPT_RIJNDAEL_128, md5($key, true), $string, MCRYPT_MODE_...

9得票3回答
如何在Ubuntu Server 16.04上启用PCNTL

我想知道如何在运行 Ubuntu 服务器 16.04 上的 PHP7 中启用 pcntl 扩展。 我看到了这个http://www.crimulus.com/2010/07/30/howto-enable-pcntl-in-ubuntu-php-installations/,但我们真的需要重新...

9得票3回答
在PHP 7.0中,致命错误:未捕获的错误:调用未定义的函数json_encode()。

我的服务器配置: [root@server ~]# php -v PHP 7.0.22 (cli) (built: Aug 7 2017 16:18:27) ( NTS ) [root@server ~]# nginx -v nginx version: nginx/1.10.2 ...

9得票4回答
无法用PHP连接到SQL Server

连接到 sqlsrv 字符串无法工作。 $login = new PDO("sqlsrv:server=MYSQLSERVER\SQLEXPRESS;Database=db_name", "user", "passw"); 我遇到了错误信息: Fatal error: Invalid h...