Недавно я просматривал PHP 7, в частности return type declaration и type hinting. Я скомпилировал PHP 7 из источника (главная ветка от Github) и запускал его в виртуальной коробке Ubuntu 14.04. Я попытался запустить следующий код, чтобы получить тест нового Exceptions. Но он дал чистую страницу.Пустая страница, если я объявляю (strict_types = 1); в PHP 7 в верхней части файла
<?php
function test(): string {
return [];
}
echo test();
Тогда я понимаю, что я должен установить ошибку для отображения на экране. Поэтому я добавил старомодный ini_set('display_errors', 1);
, как показано ниже,
<?php
ini_set('display_errors', 1);
function test(): string {
return [];
}
echo test();
, который дал мне следующий TypeError
, как ожидается, в соответствии с этим Throwable interface RFC
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);
в верхней части, как показано ниже,
<?php declare(strict_types=1);
ini_set('display_errors', 1);
function test(): string {
return [];
}
echo test();
и ошибка, ошибка только что исчезла, оставив меня с пустой страницей. Я не могу понять, почему он дает мне пустую страницу?
Спасибо, что вернулись, чтобы ответить на него, я, вероятно, столкнулся бы с одним и тем же, когда я, наконец, начну играть с 7 – dops