问题标签 [php-7.4]
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 7.4 中获取类型化属性的类型
我有一个DTO
带类型的 PHP 变量:
我正在尝试制作某种自动映射器来填充属性,但是我需要检查变量的类型,但这似乎是不可能的。
ContactInputDto:
是否有可能使该行"gettype($this->$key)"
工作,而不会引发以下错误:
类型化属性 App\Dto\CreateMembershipInputDto::$is_gift 在初始化之前不得访问
php - mysqli 是否支持 PHP 7.4 中的 caching_sha2_password?
当我尝试从 PHP 7.3 升级到 PHP 7.4 时,我收到了这个错误:
执行caching_sha2 auth 109时出现意外的服务器响应
如我所见,这表明 PHP 7.4 MySQLi 正在尝试使用该caching_sha2_password
插件。这篇文章指出 PHP MySQLi 不支持该插件(它也暗示了将来会支持它),但是由于 PHP 7.4 是新的并且似乎正在尝试使用它,我想它应该可以工作。此外,错误消息与不受支持的情况不同(拒绝访问与身份验证方法未知)。
所以我将我的 MySQL 身份验证插件更改为caching_sha2_password
(使用与以前相同的密码):
但这导致了另一个错误:
用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)。
切换回 PHP 7.3 并mysql_native_password
再次运行。
我对两个插件、同一个网站使用了相同的密码,并应用了相同的 php.ini 更改。但是,我没有更改任何mysqli
配置。MySQL 的日志没有显示任何内容,apache2 日志仅显示“拒绝访问”错误消息。
php7.4-mysqli 是否支持caching_sha2_password
?是的
为什么我的密码被拒绝,我该如何解决? 请参阅我的后续问题
另外,如果 MySQLi 仍然不支持该插件:我该如何使用mysql_native_password
它?
php - php 7.4 在写入变量中的 Twig 问题
我在我的项目中使用 php7.3 并在这个项目中使用 Twig
将我的 php 版本升级到 7.4 后,我在树枝渲染中出现了一些错误。
我通过 Twig 变量设置了一些 html 类
例如:
使用 php 7.3 时,Twig 渲染的输出为:
我的来源没有问题。
但是当我的 php 升级到 php 7.4 时,输出发生了变化!
在变量之前在空间上删除了树枝,并且在我的源代码中发生了非常错误:/
从 Twig 到处调用变量,Twig 删除它之前的所有空间!
有什么解决办法吗?
如何解决?
php - PHP 7.4 中的循环引用
在 PHP 7.4 中,当循环引用对象中有方法时,我注意到gc_collect_cycles返回的收集循环数始终为零。destructor
当我删除该__destruct
方法时,输出为:
您可以看到这种行为从 PHP 7.4.0beta4开始
这里发生了什么 ?即使禁用了 GC,是否会在析构函数中收集垃圾循环?
php - 为什么我在引入属性类型提示时突然收到“在初始化之前不能访问类型属性”错误?
我更新了我的类定义以利用新引入的属性类型提示,如下所示:
但是,当试图将我的实体保存在 Doctrine 上时,我收到一条错误消息:
在初始化之前不能访问类型化的属性
这不仅发生在$id
or$createdAt
上,而且也发生在$value
or$updatedAt
上,它们是可为空的属性。
php - 如何在 PHP 7.4 中启用 opcache 预加载?
我想在 PHP 7.4 中的生产服务器上启用opcache 预加载( RFC )。
如果它改变任何东西,我正在使用Symfony 4 。
php - 无法为 php 7.4.1 安装 php-devel
当我输入时,我无法安装 php-devel:
如何解决这个问题?谢谢
操作系统:CentOS Linux 7 (Core) CPE 操作系统名称:cpe:/o:centos:centos:7 内核:Linux 3.10.0-1062.el7.x86_64 架构:x86-64 php版本:PHP 7.4.1RC1
php - 尝试访问 null 类型值的数组偏移量
从 php 7.1 迁移到 7.4。我们对一个 API 进行了大约 500 个功能测试,其中一些在迁移完成后开始失败并出现错误。这些测试以前到处都是通过,现在到处都失败了——不是全部,只有 39 个。
环境信息:
- php 7.4
- 密码接收
- yii2
堆栈跟踪:
由于ErrorHandler.php:83
这只是捕获错误,让我们看一下SomeFileHereCest.php:72
:
所以$this->config['backend']['api_prefix']
这是一个字符串(“v1”)
而且我看不出问题出在哪里以及如何更深入地研究它。有任何想法吗?
php - 有预加载文件时 Apache 不启动
我刚刚安装Opcache
,一切看起来都很好,但是当我在其中添加一个 PHP 文件opcache.preload
并php.ini
重新启动时,Apache 服务器没有启动。另一方面,在 CLI SAPI 中预加载工作正常!
当我注释掉opcache.preload
并重新启动时,Apache 服务器工作
由于这个问题没有发出任何错误,我查找了 Apacheerror_log
文件,结果发现问题是我没有定义 opcahe 预加载用户
致命错误“opcache.preload_user”尚未定义
但是根据PHP文档
出于安全原因,不允许以 root 身份预加载代码。该指令有助于让预加载以另一个用户身份运行。
我正在使用在WSL下运行 Ubuntu 的个人计算机
所以请指导我该怎么做?我应该添加什么用户?