最近我正在检查PHP 7,特别是
return type declaration和
type hinting.我已经从源代码编译了PHP 7(从
Github开始的master分支)并在Ubuntu 14.04虚拟框中运行它.我尝试运行以下代码来测试新的
Exceptions.但它给了一个空白页面.
function test(): string {
return [];
}
echo test();
然后我意识到我必须设置错误才能在屏幕上显示.所以我添加了老式的ini_set(‘display_errors’,1);如下,
ini_set('display_errors', 1);
function test(): string {
return [];
}
echo test();
根据这个Throwable interface RFC,这给了我按照预期的TypeError
Fatal error: Uncaught TypeError: Return value of test() must be of the
type string, array returned in /usr/share/nginx/html/test.php on line
7 in /usr/share/nginx/html/test.php:7 Stack trace: #0
/usr/share/nginx/html/test.php(10): test() #1 {main} thrown in
/usr/share/nginx/html/test.php on line 7
进一步挖掘我添加了declare(strict_types = 1);在顶部如下,
ini_set('display_errors', 1);
function test(): string {
return [];
}
echo test();
和爆炸,错误刚刚消失,留下我的空白页.我无法弄清楚为什么它给我一个空白页?