dosyasının başında PHP 7'yi, özellikle de return type declaration ve type hinting'u kontrol ediyordum. PHP 7'yi kaynaktan (Github'dan master şubesi) derledim ve Ubuntu 14.04 sanal kutusunda çalıştırdım. Yeni bir Exceptions sınavına girmek için aşağıdaki kodu çalıştırmayı denedim. Ama boş bir sayfa verdi.Beyan ederseniz boş sayfa (strict_types = 1); PHP 7'de
<?php
function test(): string {
return [];
}
echo test();
Ardından, ekranda görüntülenecek hatayı ayarlamam gerektiğini anlıyorum. Bu yüzden aşağıda gibi eski moda ini_set('display_errors', 1);
, ben aşağıdaki gibi üstündeki declare(strict_types=1);
eklendi ileri Kazı bu 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
göre beklendiği gibi bana TypeError
aşağıdaki verdi
<?php
ini_set('display_errors', 1);
function test(): string {
return [];
}
echo test();
,
<?php declare(strict_types=1);
ini_set('display_errors', 1);
function test(): string {
return [];
}
echo test();
eklendi
ve bang, hata beni boş bir sayfa ile bırakarak kayboldu. Bana neden boş bir sayfa verdiğini anlayamıyorum?
Cevap vermek için geri döndüğünüz için, muhtemelen 7 ile oynamaya başladığımda muhtemelen aynı şeyle karşılaşırdım. – dops