Problem mit NULL und ""

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit NULL und ""

    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.
    Zuletzt geändert von Kane2073; 01.12.2006, 12:01.

  • #2
    wie siehts denn mit is_null() aus?

    Kommentar


    • #3
      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...

      Kommentar

      Lädt...
      X