• 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?
 
*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.
 
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