2015-09-19 19 views
7

Tôi muốn thử khai báo loại trả về của PHP 7 (Tôi đang sử dụng PHP 7RC3 trên các cửa sổ cho mục đích này).Khai báo loại trả về PHP 7 - lỗi chết người

muốn bắt đầu với một cái gì đó rất đơn giản:

function getme() : integer 
{ 
    return 434; 
} 
echo getme(); 

nhưng điều này mang lại cho tôi một lỗi nghiêm trọng:

Fatal error: Uncaught TypeError: Return value of getme() must be an instance of integer, integer returned

sau đó tôi cũng đã cố gắng để cast giá trị trả về, nhưng return (integer) 434; hoặc return (int) 434; cho tôi cùng một lỗi;

cuối cùng tôi cũng đã cố gắng:

function getme() : integer 
{ 
    $i = 434; 
    return (integer) $i; 
} 
echo getme(); 

với kết quả tương tự.

tôi đang làm gì sai?
hoặc tôi đã hiểu nhầm điều gì ở đây?

cảm ơn mọi lời giải thích và trợ giúp!

CẬP NHẬT
đây là lý do tại sao tôi nghĩ rằng tôi đã phải sử dụng integer thay vì int (đặc biệt lưu ý đến Toby Allen):

từ https://wiki.php.net/rfc/return_types:

Examples of Invalid Use (...)

// Int is not a valid type declaration 

function answer(): int { 
    return 42; 
} 
answer(); 
+1

Nó tìm kiếm một lớp có tên 'integer', không phải là một số. – melpomene

+0

@melpomene cảm ơn, đó là những gì tôi bằng cách nào đó nghĩ quá, bởi vì nó hy vọng một 'dụ của số nguyên' –

+0

Chắc chắn phải có mức độ cơ bản của tài liệu trên trang web tài liệu php 7? –

Trả lời

13

No new reserved words are added. The names int, float, string and bool are recognised and allowed as type declarations, and prohibited from use as class/interface/trait names (including with use and class_alias).

Từ: https://wiki.php.net/rfc/scalar_type_hints_v5

TL/DR:

function getme() : int 
{ 
    return 434; 
} 

echo getme(); 
+0

cảm ơn bạn! Tôi chỉ phát hiện ra rằng việc sử dụng 'int' như một kiểu trả về hoạt động. có vẻ như tôi đã hiểu nhầm về 'số nguyên' trong tài liệu. sẽ chấp nhận câu trả lời của bạn ngay sau khi tôi có thể. –

+0

sẽ rất tuyệt nếu bạn có thể thêm liên kết vào nguồn trích dẫn của bạn! cảm ơn bạn. –

+1

Tôi đã cập nhật câu trả lời, tôi rất vui vì tôi đã giúp –

Các vấn đề liên quan