PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Problem mit NULL und "" (https://www.php-resource.de/forum/php-developer-forum/78694-problem-mit-null-und.html)

Kane2073 01-12-2006 13:20

Problem mit NULL und "" (erledigt)
 
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:

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;
    }


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:
PHP-Code:

$wert NULL;

//Erzeugen eines Objekts
$a = new a($wert);
$a->ausgabe(); 

Dies erzeugt folgende Ausgabe:
(Nichts halt)
PHP-Code:

$wert2 "Text";

//Erzeugen eines Objekts
$b = new a($wert2);
$b->ausgabe(); 

Dies erzeugt folgende Ausgabe: dieses hier ist Text
PHP-Code:

$wert3 "";

//Erzeugen eines Objekts
$c = new a($wert3);
$c->ausgabe(); 

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.

TobiaZ 01-12-2006 13:27

wie siehts denn mit is_null() aus?

Kane2073 01-12-2006 13:43

Habe meinen Denkfehler gerade selber herausgefunden. Ist doch alles richtig, bin nur von meinem ellenlangen Quellcode durcheinander geraten, den ich hier nicht rein geschrieben habe.

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 (
$this->test !== NULL
        {
             
$this->fertig " dieses hier ist $this->test"
        }
    }
    public function 
ausgabe()
    {
        echo 
$this->fertig;
    }


Musste bei beiden sowohl in meiner convert Methode als auch in meinem Konstruktor, entsprechend vergleichen und habe es beim Konstruktor einfach vergessen...


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:02 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG