Frage zur Konstruktor-Methode...

hanow

Mitglied
Guten Tag, alle

Ich hab gerade ein Problem mit der Konstruktor in PHP-Klasse, das Ergebnis von meinem Programm zeigt immer noch nicht wie erwünscht..kann mir jemand dabei helfen, den Fehler zu finden ? Danke, MFG

Code:

PHP:
<?php 

class Kunde{
	
	public $name;
	
//Konstruktor
	  
	  public function _construct($name){
		  
		  $this->name = $name; //$this : Klasse kunde
		  
	  }
	  
	  public function halloSagen_2(){
		  
		  echo "Halloooo, {$this->name}";
		  echo "<br />";
		  
	  }

}

$neuerKunde = new Kunde("Antino");

$neuerKunde->halloSagen_2();

echo $neuerKunde->name;
echo "<br />";


?>
 
ohm....danke dir, dummer Fehler von mir...hab immer an Java gedacht, wenn ich mit Klasse und Konstruktoren arbeite.....

Aber kann ich die klasse von PHP gleich konstruieren wie bei Java****

Geht es auch mit Konstruktor ohne und mit Parameter****

MFG
 
Du meinst sicher Überladen von Funktionen innerhalb der gleichen Klasse? Das geht mit PHP nicht. Aber du kannst mit variablen Argumentlisten innerhalb von Funktionen arbeiten. Dann musst du innerhalb der Funktion entscheiden, ob du jetzt Parameter benötigst oder nicht. Hier ein anschauliches Beispiel:

http://snippets.dzone.com/posts/show/1712
 
Es gibt eine weitere Möglichkeit, die aber je nach Länge der Argumentliste recht schnell unübersichtlich wird.

Du kannst eine feste Argumentliste vorgeben, und alle Parameter vorinitialisieren. Beispiel:

PHP:
<?php
class A
{
  private $_a = 42;

  private $_b = 'Test-String';

  private $_c = array(1, 2, 3);
  
  private $_d = null;

  public function __construct($a = 0, $b = '', $c = array(), $d = null)
  {
    // Member-Property überschreiben
    if( $a != null )
      $this->_a = $a;

    if( $b != '' )
      $this->_b = $b;

    if( is_array($c) && count($c) > 0 )
      $this->_c = $c;
	  
	if( is_object($d) )
	  $this->_d = $d;
  }
}

echo '<pre>';

$a = new A();
var_dump($a);
$b = new A(36);
var_dump($b);
$c = new A(32, 'Anderer String');
var_dump($c);
$d = new A(25, 'Noch mal anderer String', array(15,27,301));
var_dump($d);
$e = new A(25, 'Noch mal komplett anderer String', array(18,39,556), new A());
var_dump($e);

echo '</pre>';
?>
 
Danke, dein Programm hat mir sehr zum Verständnis der Konstrktoren von PHP geholfen -)

Man kann in __construct() beliebig viele Parameter zur Initialisierung eingeben, die Parameter können dann nach einigen Bedingungen geändert werden und zwar gleichzeitig, prima..

Aber ich weiß noch nicht genau was man damit tun kann im Praxis ?
 
Ich nahm an, dass du das mit deiner Frage ausdrücken wolltest: Mehr als nur einen Constructor zwecks verschiedener Parameter-Listen. Oder hab ich da was falsch verstanden?
 
Zurück