最近我正在檢查PHP 7,特別是return type declaration和type hinting。我已經從源代碼(Github的主分支)編譯PHP 7並在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