问题标签 [php-7]

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.

0 投票
1 回答
2427 浏览

php-7 - PHP 的宇宙飞船运算符 <=> 如何处理无法比较的操作数?

PHP 7 中将添加 spaceship 运算符。我不确定它在某些边缘情况下是如何工作的。

$a <=> $b将返回:

  • 1如果 $a > $b
  • 0如果 $a == $b
  • -1如果 $a < $b

如果这些值不具有可比性,会发生什么?

可以比较哪些变量类型?

0 投票
2 回答
7327 浏览

php - PHP 7 接口中的静态返回类型

为什么在 PHP 7 中不能声明具有static返回类型的接口?

假设我有以下课程:

我想强制plus()方法的返回类型为static,即:

  • BigInteger::plus()必须返回一个BigInteger
  • BigDecimal::plus()必须返回一个BigDecimal

我可以通过以下方式声明接口:

但这并不能强制执行上述内容。我想做的是:

但迄今为止,PHP 7 对此并不满意:

PHP 解析错误:语法错误,意外的“静态”(T_STATIC)

是否有特定原因,或者这是一个应该报告的错误?

0 投票
1 回答
121 浏览

null-coalescing-operator - 空值合并运算符也可用于虚假值,但不能用于空值?

PHP 中新的null 合并运算符无疑是一个很棒的特性,有点类似于 JavaScript||用于获取默认值的用法。

我已经阅读了一些有关此功能的文档和文章,但有些事情对我来说仍然不是很清楚。

1.我可以使用这个运算符与任意数量的操作数吗?例如,这是否有效?

$a = $p1 ?? $p2;

$b = $r1 ?? $r2 ?? $r3 ?? $r4 ?? $r5;

2.不为空的虚假值是怎么回事?

$test = false ?? 0 ?? 'test';- 现在会怎样$test?如果它不适用于 null 以外的虚假值,我们如何才能实现它像 JavaScript 一样工作||

0 投票
2 回答
4848 浏览

php - PHP 7 Unicode 支持和平台无关

宣布PHP 7 支持“一致的 64 位”。这是什么意思?

PHP 7 是否支持类似于PHP 6 计划的Unicode (unicode.semantics指令等)?如果没有,它什么时候会原生支持 Unicode?

0 投票
0 回答
741 浏览

php - 为什么 PHP7 上的 ElephantIO 无法识别我使用 OpenSSL 编译

我刚刚在带有标志的 Ubuntu 14.04 上编译了 PHP7 --with-openssl,它完全可以运行。我用 Composer 安装了Elephant.io,但运行测试并收到此错误。

致命错误:在第 42 行的 /var/www/html/vendor/wisembly/elephant.io/src/Payload/Encoder.php 中调用未定义函数 ElephantIO\Payload\ openssl_random_pseudo_bytes()

这是我的测试代码。

这是我在编译 PHP7 之前运行的配置构建的命令。

我认为 Ubuntu 软件包就在那里。这是我的 openssh* 包!

openssh-client openssh-sftp-server openssl-blacklist openssh-server openssl openssl-blacklist-extra

有任何想法吗?我被困住了,对编译 PHP 很陌生。

0 投票
1 回答
86 浏览

php - 我必须使用 Zend 才能获得 PHP 7.0.0 版吗?

我刚刚访问php.net,看到他们刚刚发布了PHP 版本 7.0.0。我必须得到Zend才能使用它还是我可以更新?

0 投票
5 回答
19448 浏览

php - PHP 7 中的匿名类

我可以在哪里使用以及应该使用 PHP 7 中提供的匿名类?我找不到他们的用例。

0 投票
2 回答
7461 浏览

php - 如果我声明为空白页(strict_types=1);在文件顶部的 PHP 7 中

最近我正在检查 PHP 7,特别是返回类型声明类型提示。我已经从源代码(Github的 master 分支)编译 PHP 7 并在 Ubuntu 14.04 虚拟机中运行它。我尝试运行以下代码来测试新的Exceptions。但它给出了一个空白页。

然后我意识到我必须设置要在屏幕上显示的错误。所以我在下面添加了老式的ini_set('display_errors', 1);

TypeError根据this Throwable interface RFC ,这给了我预期的关注

致命错误:未捕获的类型错误:test() 的返回值必须是字符串类型,在 /usr/share/nginx/html/test.php 中的第 7 行中返回的数组 /usr/share/nginx/html/test.php :7 堆栈跟踪:#0 /usr/share/nginx/html/test.php(10): test() #1 {main} 在第 7 行的 /usr/share/nginx/html/test.php 中抛出

进一步挖掘我declare(strict_types=1);在顶部添加如下,

砰,错误就消失了,给我留下了空白页。我不知道为什么它给了我一个空白页?

0 投票
1 回答
1618 浏览

php - 类型提示和多个构造函数

我一直在研究 PHP7 的新特性,并认为我可能会开始为我的项目准备它引入的新特性,比如标量类型提示。

我遇到的第一个问题是我在各种类中的构造函数。我有一些通用的委托人,它们的行为如下:

为这个方法引入类型提示当然会在各个方向抛出错误。

据我所知,PHP7 没有引入对多个构造函数的支持。有没有办法解决这个问题,或者这是语言的限制之一?

0 投票
1 回答
651 浏览

hhvm - HHVM 是否能够运行 PHP7

我知道 PHP7 有一个几乎和 HHVM 一样快的新编译器,但我只是好奇 HHVM 是否也能像 PHP5 一样运行 PHP7。

我找不到这方面的任何细节。我发现的所有东西都只是 HHVM 与 PHP7 的对比。同样,任何人都可以找到在 HHVM 上运行的 PHP5 版本。

谢谢