Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von März

SELFHTML Forumsarchiv
class, leerer inhalt soll ersetzt werden

Informationsseite
  1. Seite (PHP) class, leerer inhalt soll ersetzt werden von selfer, 31. 03. 2007, 17:33
nach unten

class, leerer inhalt soll ersetzt werden

Die folgende Nachricht zum Thema stammt von: selfer, 31. 03. 2007, 17:33

Hallo,

ich habe mal so aus fun einen menschen 'klassifiziert' (zur übung) doch prompt habe ich ein problem.
wenn eine instanz der classe erstellt wird solle auch gleich mit __construct() werte mitgegeben werden.
etwas so:
$person=new mensch("Willy",58,"Deutsch","Männlich");


wird kein wert angegeben soll der 'leere' wert durch 'unknown' ersetzt werden. z.b:
function __construct($a="unknown",$b=0,$c="unknwon",$d="unknown")
 {
   //Anweisungen
 }


also sollte nun wenn die classe erstellt wird und ein argument nicht
angegeben wird wie z.b das 'Willy' durch 'unknown' ersetzt werden.
man würde das dann ja so schreiben:
$person=new mensch("",58,"Deutsch","Männlich");


aber das "" wird nicht durch 'unknown' ersetzt.
anscheinend wird es nicht als NULL oder wirklich leer erkannt.
wie kann man das ändern?

ich hoffe mal das es überhaupt jemand versteht was ich meine ;)
danke!

nach obennach unten

class, leerer inhalt soll ersetzt werden

Die folgende Nachricht zum Thema stammt von: globe, 31. 03. 2007, 17:43

n'abend,

»» wird kein wert angegeben soll der 'leere' wert durch 'unknown' ersetzt werden. z.b:
»» »» function __construct($a="unknown",$b=0,$c="unknwon",$d="unknown")
»» {
»»    //Anweisungen
»» }
»»


wie wärs denn hiermit?

class Mensch
{
  private $a;
  private $b;
  private $c;

  public function __construct( $a=null, $b=null, $c=null )
  {
    $this->a = $a === null ? 'unknown' : $a;
    $this->b = $b === null ? 2 : $b;
    $this->c = $c === null ? array() : $c;
  }
}

$someHuman = new Mensch(null,3,array('asd','blubb','foo'));


Dann würdest du den Konstruktor auch so nutzen, wie man (oder zumindest ich) es für sinnvoll hält. null ist generell kein dummer Wert für "nicht gesetzt", wenn du null nicht gerade für etwas anderes (miss-)brauchst.

wenn du auf php5 entwickelst und nicht unbedingt php4-kompatibel sein musst/willst, gewöhne dich doch an die "visibility-flags" (public,private,protected).

weiterhin schönen abend...
--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.

sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|

nach obennach unten

Geholfen!

Die folgende Nachricht zum Thema stammt von: selfer, 31. 03. 2007, 17:55

Hi globe,

danke! perfekte lösung!


lesen uns

mfg selfer

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von März

© 1998-2006 Seite Impressum, Software: Classic Forum