2016-06-09 7 views
1

Heute ich, dass Sie tun können, in php gerade entdeckt:neues Objekt unter Verwendung von Objektklasseninstanz

$instance = new MyObject(); 

// Here $instance->getName() == 'First Instance' 
$instance->setName('First Instance'); 

// Here $newInstance->getName() == null 
$newInstance = new $instance(); 

Offensichtlich $newInstance ist ein gültiges Objekt ‚MyObject‘.

Kann mir jemand sagen was dieser Weg zu gehen involvieren und ob es ein NICHT ist oder nicht muss?

Thx mates!

+0

Was versuchen Sie zu erreichen? Die letzte Zeile dieses Codes macht keinen Sinn. Ich hätte es fatal erwartet, aber anscheinend nicht O_o –

+0

Ich benutze eine Funktion, die ein Objekt in Parameter nimmt, die ich nicht kenne die Klasse, verwenden Sie eine Funktion, um mehr Details über das Objekt zu erhalten, dann eine neue Klasseninstanz zu werfen Senden mit allen Details. Ich erstelle eine neue Klasse, weil diese Funktion Teil eines Projekts ist, wo ich Objektdetails über eine API erhalte und jede Funktion, die Informationen von dieser API erhält, ein 'neues MyObject ($ apiResults)' zurückgibt, also möchte ich diesen Weg beibehalten selbst für diese Funktion, die allgemeiner ist ... – LordWeedlle

Antwort

1

Sie müssen ein so genanntes "Singleton Design Pattern" verwenden, um Ihr Ziel zu erreichen. Wenn ich nicht falsch bin, ist es das gleiche Objekt zu verwenden, jedes Mal wenn ein Objekt der Klasse erstellt wird.

class Singleton { 
private static $instance; 

public function __construct() { 
     if (isset(self::$instance)) { 
      $object   = __CLASS__; 
      self::$instance = new $object; 
      return self::$instance; 
     } 
    } 
} 

Hier werden die Konstruktor überprüft, ob es bereits eine Instanz der Klasse ist, wenn es ist, gibt es das Objekt selbst. Sonst schafft es ein neues.

Verwandte Themen