2015-09-19 7 views
7

Ich wollte versuchen, PHP 7 Rückgabetyp Deklarationen (Ich verwende PHP 7RC3 unter Windows für diesen Zweck).PHP 7 Rückgabetyp Deklarationen - fataler Fehler

wollte mit etwas sehr einfach starten:

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

aber das gibt mir einen fatalen Fehler:

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

dann auch ich versucht, den Rückgabewert zu werfen, aber return (integer) 434; oder return (int) 434; gibt mir der gleiche Fehler;

schließlich auch versucht i:

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

mit dem gleichen Ergebnis.

was mache ich falsch?
oder was habe ich hier falsch verstanden?

danke für irgendwelche Erklärungen und Hilfe!

UPDATE
diesem Grund dachte ich, ich integer statt int (besondere Note Toby Allen) zu verwenden hatte:

von 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

Es sucht nach einer Klasse mit dem Namen 'integer', keine Zahl. – melpomene

+0

@melpomene Danke, das habe ich auch irgendwie gedacht, weil es eine 'Instanz von Integer' erwartet –

+0

Sicherlich muss diese grundlegende Dokumentationsebene auf der php 7 Dokumentationswebseite sein? –

Antwort

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).

Von: https://wiki.php.net/rfc/scalar_type_hints_v5

TL/DR:

function getme() : int 
{ 
    return 434; 
} 

echo getme(); 
+0

danke! Ich habe gerade herausgefunden, dass die Verwendung von 'int' als Rückgabetyp funktioniert. scheint, als hätte ich in den Dokumenten etwas über "Integer" verstanden. Ich werde deine Antwort annehmen, sobald ich dazu in der Lage bin. –

+0

wäre nett, wenn Sie einen Link zur Quelle Ihres Zitats hinzufügen könnten! Danke. –

+1

Ich habe die Antwort aktualisiert, ich bin froh, dass ich geholfen habe –

Verwandte Themen