2009-06-30 3 views
0

나는 PHP에서 초보자와 나는 개체 내부의 모든 데이터를 한 번 초기화하고 그들에게 내가 그 문제를 해결할 수있는 방법은 나중에PHP는 다음 코드와 같은 객체 상태를 저장할 수 있습니까?

<? 
class Person(){ 

    private $data;//private or public 
    function Person($data){ 
     $this->data['name'] = $data['name']; 
     .... 

    } 

    function save(){ 
     $this->dbconn.executeQuery('insert into ... values('$this->data['name']',...)); 
     //some object to connect and execute query on a database. 
    } 

} 
?> 

$me = new Person(array(['name']=>'my fname my lname',...)); 
    $me->save(); 

//print_r($me) shows that $data has no initialized values 

을 사용할 수 있습니다 어떠했는지 내가 요구하고있다. 같은 문제가있는 링크를 아는 경우 복사하여 여기에 붙여 넣으십시오. 고맙습니다.

+0

미안하지만 당신이 무엇을하려고하는지, 어디서 고생하고 있는지 이해할 수 없습니다 ... "$ this-> dbconn.executeQuery"는 올바른 PHP 구문이 아닙니다. –

+0

$ this-> dbconn object와 executeQuery 함수는 데이터베이스에 쿼리를 연결하고 실행하는 데 도움이됩니다. 그 (것)들에 아무 문제도 없다. Person :: Save를 사용할 때마다 문제가 발생합니다. 사실 나는 그것을 호출 할 때마다 Person :: Save에 매개 변수를 전달하고 싶지 않습니다. 대답 해줘서 고마워. –

답변

0

serialize을 사용하고 원하는 위치에 개체를 저장할 수 있습니다. 하지만이 경우 객체 연결을 영구적으로하지 않기 때문에 객체를 직렬화 해제 한 후에 db 연결을 사용하려고하면 문제가 발생할 수 있습니다. 반면에

는 개체를를 unserialize하려고하지 않을 때 PHP는 늘 당신이 직렬화

1

두 가지가 있었다 클래스를 알고 있기 때문에 당신이 오류가 발생합니다 경우 항상 클래스 정의를로드하도록 기억한다. 데이터를 잘못 전달할뿐만 아니라 클래스를 잘못 설정했다고 생각합니다.

<?php 
class Person { 
    function __construct($data){ 
     $this->data = array(); 
     $this->data['name'] = $data['name']; 
    } 

    function save(){ 
     // Do something here. 
    } 
} 

$info = array(); 
$info['name'] = "Joe Blogs"; 

$someone = new Person($info); 
print_r($someone); 
?> 

나를 위해이 정보를 인쇄합니다.

+0

고마워. 이걸 시험해 볼거야. 뭔가 일하는 것 같아. 문제는 내가 객체를 만드는 방식 일 수 있습니다. 초기화에 PHP4 방식을 사용했습니다. 간단하게 표기법을 사용 했으므로 데이터 초기화에는 아무런 문제가 없습니다. 응답에 다시 한 번 감사드립니다. –

+0

문제 없음 - 테스트 서버에 업로드하고 예상되는 응답으로 이동하면 정상적으로 작동합니다. LMK가 도움이되는지 확인하십시오. – EvilChookie

+0

그것은 I이 밖으로 = 시도 작동 : 클래스 시험기 {\t \t \t \t 함수 __construct ($ 데이터) { \t \t \t $ this-> = 데이터 어레이(); \t \t \t $ this-> data [ 'name'] = $ data [ 'name']; \t \t \t $ this-> data [ 'age'] = $ data [ 'age']; 저장 \t \t \t \t \t \t \t \t \t \t} \t \t 함수() { \t \t \t 에코 '라고
'; \t \t \t print_r ($ this); \t \t \t \t \t} \t \t \t} \t \t \t \t \t \t 나를 $ = 새로운 테스터 (배열 ("이름"=> "파스칼 Maniraho", "나이"=> 2000)) ; \t \t $ me-> save(); 내가 테스터 개체라고있어 ([데이터] => 배열 ([이름] => 파스칼 Maniraho [나이] => 2000)) 다시 도움을 감사합니다. –

관련 문제