2010-02-21 7 views
1

인자를 사용하여 객체를 인스턴스화하는 데 사용할 수있는 함수가 있습니까?개체를 만드는 기능은 무엇입니까?

#include <database.h> 
class database 
{ 
    function __construct($dbhost, $user, $pass, $etc) { /* etc */ } 
    function query($sql) { /* dowork*/ } 
} 
$args = array('localhost', 'user', 'pass', 'etc'); 

$db = create_object('database', $args); // is there a function like this? 
$db->query('SELECT * FROM poop'); 
+0

+1 : 유래하기 : – Sarfraz

+1

'#INCLUDE 을'오신 것을 환영합니다? 이 PHP 또는 C 여기 있습니까? –

+1

"#include"는 PHP에서 C 또는 C++과 같은 방식으로 작동하지 않습니다. 아마도 "include 'database.h';" 또는 더 나은 방법은 "require_once 'database.h';" – amphetamachine

답변

1

당신은 이것에 대한 ReflectionClass::newInstanceArgs 사용할 수 있습니다

class database 
{ 
    function __construct($dbhost, $user, $pass, $etc) { /* etc */ } 
    function query($sql) { /* dowork*/ } 
} 
$args = array('localhost', 'user', 'pass', 'etc'); 

$ref = new ReflectionClass('database'); 
$db = $ref->newInstanceArgs($args); 
+0

그렇다면 리플렉션 클래스를 사용하는 것이 좋지만 인수가 referecne에 의해 전달되면 실패합니다. – Sarfraz

+0

정확히 무엇이 실패할까요? –

+2

@Sarfraz : 실패하지 않을 것입니다. 위의 예제에서, 그는 값에 의해 어쨌든 통과하고있다. 그러나 위의 예제를 사용하여 참조로 전달하고자한다면 변수의 참조가 변수 대신에'$ args'에 삽입되어 있는지 확인해야한다 그 자체. ($ args = array ($ byValue, & $ byReference);') –

관련 문제