• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

'text' wird nicht als String erkannt !?

Status
Für weitere Antworten geschlossen.

Artemis

Neues Mitglied
Hallo,

ich habe folgende Klasse:
PHP:
class HTML_Document //...
{
    
    //...
    
    public function __construct(string $docType)
    {
    }
    
    //...
    
}
Wenn ich jetzt ein neues Objekt erstellen möchte:
PHP:
$document = new HTML_Document('xhtml 1.0 strict');
Erhalte ich folgende Fehlermeldung:
Fatal error: Argument 1 passed to HTML_Document::__construct() must be an object of class string ...

Ist da was falsch, und wenn ja, dann was?
 
Werbung:
*mal nen schuss ins blaue abgeb*

PHP:
public function __construct($docType)

Mod-Edit: PHP-Tags hinzugefügt (Artemis)
 
Ja, mir ist schon klar, dass das geht, ich möchte aber damit verhindern, dass ein array, eine resource oder ein object übergeben werden können.
 
Werbung:
Du kannst in PHP bei den primitiven typen (integer, boolean, float und string) nicht definieren das diese übergeben werden müssen.

Das müsstest du über ein workaround innerhalb des ifs machen:
PHP:
function($str_var)
{
  if(is_string($str_var))
  {
    // ...
  }
}

Wenn du selbst definierte Typen benutzt (Klassen) kannst du dies ab PHP5 so wie oben in deinem Quelltext beschrieben machen sonst nicht.
 
einzige ausnahme: arrays

PHP:
private abstract function foobar (array $arr);
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben