最近、私は PHP 7 を調べていました。具体的には、型宣言と型ヒントを返します。ソース ( Githubの master ブランチ) から PHP 7 をコンパイルし、Ubuntu 14.04 仮想ボックスで実行しました。新しいExceptionsのテストを取得するために、次のコードを実行しようとしました。しかし、それは空白のページを与えました。
<?php
function test(): string {
return [];
}
echo test();
次に、エラーを画面に表示するように設定する必要があることに気付きました。ini_set('display_errors', 1);
だから私は以下のように昔ながらを追加しました、
<?php
ini_set('display_errors', 1);
function test(): string {
return [];
}
echo test();
このThrowable interface RFCTypeError
に従って、期待どおりにフォローしてくれました
致命的なエラー: Uncaught TypeError: 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);
さらに掘り下げて、以下のように上部に追加しました。
<?php declare(strict_types=1);
ini_set('display_errors', 1);
function test(): string {
return [];
}
echo test();
そしてバング、エラーが消えて空白のページが残りました。空白のページが表示される理由がわかりませんか?