dedlfix: Typenangabe in Methoden

Beitrag lesen

echo $begrüßung;

Kann mir einer erklaeren, warum ich diesen Fehler bekomme?
Catchable fatal error: Argument 1 passed to DoSomething() must be an instance of string, string given,

Das erste Argument muss ein Objekt vom Typ "string" sein, du hast aber einen String übergeben.

function DoSomething(string $str)

Das funktioniert so nicht. Type Hinting geht nur mit Klassen oder mit "array", nicht aber mit einfachen Typen. PHP hat ja eine eingebaute Typumwandlung. Wenn du dort beispielsweise einen Integer übergibst, würde der automatisch zum String werden. Es bringt da also nichts, den Parameter auf String festnageln zu wollen. Auch im weiteren Verlauf wird der Typ ja je nach Erfordernis automatisch gecastet.

echo "$verabschiedung $name";