2016-06-09 1 views
1

오늘 :새로운 개체를 사용하여 객체의 클래스 인스턴스

$instance = new MyObject(); 

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

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

분명히 $newInstance 유효한 'MyObject를'개체입니다.

누군가가 참여할 수있는 방법을 말해 줄 수 있습니까?

Thx 메이트!

+0

달성하려는 목표는 무엇입니까? 그 코드의 마지막 줄은 의미가 없습니다. 나는 그것을 치명적일 것으로 예상했을 것이다. 그러나 분명히 O_o가 아니었을 것이다. –

+0

매개 변수에서 객체를 취하는 함수를 사용하고 있는데, 클래스를 모르는 함수를 사용하여 객체에 대한 자세한 정보를 얻은 다음 새 클래스 인스턴스를 캐스팅합니다. 모든 세부 사항을 사용하여 전송. 이 함수는 API를 사용하여 객체 세부 정보를 얻는 프로젝트의 일부이기 때문에 새 클래스를 만듭니다.이 API에서 정보를 얻는 각 함수는 '새로운 MyObject ($ apiResults)'를 반환하므로이 방법을 계속 사용하고 싶습니다. 심지어 더 일반적인이 기능을 위해서조차도 ... – LordWeedlle

답변

1

"Singleton Design Pattern"을 사용하여 목표를 달성해야합니다. 내가 틀리지 않으면 클래스의 Object가 생성 될 때마다 동일한 Object를 사용하려고합니다. 여기

class Singleton { 
private static $instance; 

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

, 이미 클래스의 인스턴스가있는 경우 생성자 검사가 존재하는 경우, 그 객체 자체를 반환합니다. 그렇지 않으면 새로운 것을 만듭니다.

관련 문제