title image


Smiley Re: OOP in PHP, habe da mal eine Frage, Danke!
Was Du machen möchtest, ist vielleicht vergleichbar mit einer Art Singelton-Pattern. Ob das hier sinnvoll ist, oder nicht Vererbung oder Interfaces das bessere Mittel sind, mußt Du entscheiden.



PHP 5:

123456789101112131415161718192021222324<?php // PHP 5 class B {  // ...  function test()  {   echo 'This is B<br>';  } } class A {  function &B()  {   if(!isset($this->_b))    $this->_b =& new B();   return $this->_b;    } } $A =& new A(); $A->B()->test(); ?>Erstellt mit: ☆ Stefan Triess PHP Command ☆





PHP 5 mit Overloading:

1234567891011121314151617181920212223242526272829<?php // PHP 5 mit Overloading class B {  // ...  function test()  {   echo 'This is B<br>';  } } class A {  var $_b;  function &__get($n)  {   switch($n)   {    case 'B':     if(!$this->_b)      $this->_b =& new B();     return $this->_b;    }  } } $A = new A(); $A->B->test(); ?> Erstellt mit: ☆ Stefan Triess PHP Command ☆









PHP 4:

1234567891011121314151617181920212223242526<?php // PHP 4/5 class B {  // ...  function test()  {   echo 'This is B<br>';  } } class A {  function &B()  {   if(!isset($this->_b))    $this->_b =& new B();   return $this->_b;    } } $A =& new A(); $B =& $A->B(); $B->test(); ?> Erstellt mit: ☆ Stefan Triess PHP Command ☆Mit PHP4 geht $A->B()->test() nicht. Mit PHP5 ist das möglich.







PHP4 mit Overloading:

123456789101112131415161718192021222324252627282930313233343536<?php // PHP 4 mit Overloading class B {  // ...  function test()  {   echo 'This is B<br>';  } } class A {  var $_b;  function __get($n,&$v)  {   switch($n)   {    case 'B':     if(!$this->_b)      $this->_b =& new B();     $v = $this->_b;     return true;    }  }  function __set($n,$v)  {   return true;  } } overload('A'); $A = new A(); $B = $A->B; $B->test(); ?>Erstellt mit: ☆ Stefan Triess PHP Command ☆Mit PHP4 geht $A->B->test() nicht. Mit PHP5 ist das möglich. PHP 4 hat auch Probleme bei der Rückgabe von Referenzen.
Gruß Stefan

www.triess.de - Meine Themen: Consulting Forschung Entwicklung Projektierung Elektronik Software Mechanik Verfahren Messverfahren Kommunikation Navigation Map Matching Location Based Services Telematik komplexe Test- und Demonstrationssysteme GPS BS26 ISDN X.25 X.31 GSM GPRS UMTS DSL TCP/IP ACP SPS PC LAN WAN Feldbus Internet/Intranet Webdesign SQL Client/Server RedOx LF pH rF


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: