Ich habe ein kleines Problem, welches ich nun schon den gesamten Vormittag versuche zu lösen.
Ich habe eine Klasse mit einem entsprechenden Konstruktor. In diesem Konstruktor wird eine Variable mit null initialisiert, falls diese nicht als Parameter des Objektes übergeben wird.
Ich habe hier Sinngemäß mal die Klasse aufgeschrieben:
So wie man hier sieht möchte ich wenn beim erstellen eines Objektes $x übergeben wird und dies nicht NULL ist etwas daraus erstellen.
Jetzt zum Problem:
Dies erzeugt folgende Ausgabe:
(Nichts halt)
Dies erzeugt folgende Ausgabe: dieses hier ist Text
Dies erzeugt folgende Ausgabe:
(Nichts)
Genau das ist das Problem, bei der Übergabe von "" wird es intern ebenfalls als NULL gesehen und es kommt keine Ausgabe. Aber eigentlich sollte "dieses hier ist " dabei rauskommen. Kann mir einer da helfen? !== und empty funktionieren ebenfalls nicht.
Ich habe eine Klasse mit einem entsprechenden Konstruktor. In diesem Konstruktor wird eine Variable mit null initialisiert, falls diese nicht als Parameter des Objektes übergeben wird.
Ich habe hier Sinngemäß mal die Klasse aufgeschrieben:
PHP-Code:
class a
{
private $_test = "";
private $_fertig = NULL;
public function __construct ($x = NULL)
{
if ($x != NULL) $this->test = $x;
$this->connvert();
}
protected function connvert()
{
if (!(is_null($this->test)))
{
$this->fertig = " dieses hier ist $this->test";
}
}
public function ausgabe()
{
echo $this->fertig;
}
}
Jetzt zum Problem:
PHP-Code:
$wert = NULL;
//Erzeugen eines Objekts
$a = new a($wert);
$a->ausgabe();
(Nichts halt)
PHP-Code:
$wert2 = "Text";
//Erzeugen eines Objekts
$b = new a($wert2);
$b->ausgabe();
PHP-Code:
$wert3 = "";
//Erzeugen eines Objekts
$c = new a($wert3);
$c->ausgabe();
(Nichts)
Genau das ist das Problem, bei der Übergabe von "" wird es intern ebenfalls als NULL gesehen und es kommt keine Ausgabe. Aber eigentlich sollte "dieses hier ist " dabei rauskommen. Kann mir einer da helfen? !== und empty funktionieren ebenfalls nicht.
Kommentar