问题标签 [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 - 在 Xampp 中将 PHP 版本从 7x 升级到 8x
我做了这些步骤,
- 我的旧版本是7.3.11
- 从https://windows.php.net/download#php-8.0-ts-vs16-x64下载 PHP
- 删除了旧的 php 文件夹并添加了新库
...\xampp\apache\conf\extra\httpd-xampp.conf
根据此修改文件:
老的:
现在:
我认为php7_module
afterLoadModule
是一个变量。因此,如果我将其更改为php8_module
,我可能不得不在任何地方进行更改。
php - __construct 参数中的类可见性(私有) - 这是有效的 php 代码吗?
我在看别人的代码,我不明白。这是类的示例:
由于参数内部的“私有”,IDE 在 _construct 下显示错误。我知道在 PHP 8 中有联合类型,但我找不到关于在类内部而是在构造函数内部使用“私有”或“公共”的任何信息,以及这应该做什么。我认为这是错字,它应该在类内,但是像这样创建了多个类。这是一个有效的代码还是有人不知道他在做什么?
php - Php + mysql - 在 66,946 个字符的查询输入后,连接始终中断
我一直在尝试在我的 php 项目中调试随机删除的 mysql 连接。
到目前为止我发现的事情:
- 一旦通过单个 mysql 连接的输入(通过单个 mysql 连接的查询中使用的总字符)通过了 66,946 个字符,php 就会无限期地锁定导致它结束的查询。
- 如果我偶尔重新连接 mysql 服务器而不是一直重新使用现有连接,只要我在任何单个 mysql 连接的输入中不超过 66946 个字符,mysql 连接就不会断开。
- 无论是单个查询还是一堆小查询都没有关系。一旦在单个 mysql 连接上通过了“66947”阈值,php 就会无限期挂起。
- 这不是内存问题。php最多只占用10Mb的内存,最大内存为512Mb。
- mysql 连接是远程的,如果这很重要的话。
- 这个确切的代码适用于我的本地开发环境(具有任意长度的查询,相同的远程连接),但不适用于生产服务器上的查询加起来超过 66,946 个字符
- 我的开发环境和实时环境的 php 版本和配置文件是相同的,并且都在运行 Ubuntu(嗯,在本地它在技术上是 WSL)
- 在 mysqli 和 PDO 之间切换没有显着差异(只是在崩溃之前输入字符的数量不同,PDO 的字符比 mysqli 少)
- (更新):我也在另一个类似的 ubuntu 主机上尝试了这个脚本,使用相同版本的 PHP,使用相同的 mysql 主机。它在那里完美地工作......所以我真的不知道问题可能是什么。
我已将其缩小到这个最小的复制案例:
提供参数66946
返回“成功!” 立即,并且66947
只是使生产服务器无限期挂起(但在我的本地盒子中工作正常!)。
为什么我的 php mysql 连接有一些神秘的输入限制?如何阻止它(无论“它”是什么)限制我的 php mysql 连接输入长度?
php - 尝试使用 PHP 8.0 安装 Xdebug - 安装的 Zend Engine API 版本 420200930 较新
我最近在我的 Ubuntu 20.04 服务器上安装了 PHP 8.0,我正在尝试让 Xdebug 使用它。我已经按照https://xdebug.org/wizard的说明安装了它:
但是我在做的时候得到这个错误php -v
:
当我运行 phpize 时,我得到了这个输出:
所以我不确定我需要在这里做什么。为什么我无法使用正确的 Zend API 版本?
Ubuntu 报告我拥有最新版本的autoconf
,automake
和php-dev
php - Netbeans IDE (12.2):PHP 8.0 构造函数提升的语法错误
我在搞乱新的Attributes
(又名“注释”)PHP
,我遇到了这个烦人的问题,Netbeans 12.2
它无法识别我的有效PHP 8.0
代码。我已经在我的本地机器上测试了它,也在这里:https ://sandbox.onlinephpfunctions.com/ 。
代码似乎编译得很好。其他PHP 8.0
功能也可以在 IDE 中工作(...嗯,它是相同的二进制文件)。我可以以某种方式修复或消除此错误吗?因为它将我的整个工作区标记为错误。
我想这是一个错误。我可以使用旧语法,但这只是一种解决方法,以防我找不到解决方案。
问题:
我怎样才能摆脱这个错误消息,或者我的代码中是否缺少一些东西,应该在那里?
php - 将 php 升级到版本 8 后 php-cs-fixer 出现问题
php-cs-fixer
升级到 php8 后,我通过 composer 全局安装了一个问题。现在我不能使用php-cs-fixer
,因为每次我得到:
对于 php 升级和使用不同版本的 php,我使用https://github.com/shivammathur/homebrew-php
对于以前版本的 php (7.4),一切正常。
php - 在 php:8.0.1-fpm-alpine 上安装 Php8-dev
使用 Docker,我尝试从源代码构建一些 php 扩展。
为了做到这一点,我安装了 php8-dev,但是在那之后,它也安装了 php8,所以我有两个不同的 php8 版本,导致 .so 的 ldd 中断
下面是我的 Dockerfile 示例
任何想法 ?
php - 如何同时使用 php7 和 php8?
我目前正在使用 php7,我想在未来开发 php8。是否有任何机会在仅使用 XAMPP 服务器的同一台计算机上使用 php7 和 php8。