2013-12-11 2 views
-1

좋아, 이건 정말 정말 초보자 질문이지만, 난 봤어 그리고 행운을 함께이 일을 여러 가지 방법을 시도. PHP로 수업을 처음 시작했습니다. 나는 데이터베이스에 전자 메일을 쿼리하는 간단한 클래스를 만들고 있는데, 전자 메일이 해당 데이터베이스에 존재하는지 여부를 반환합니다. 다음은 내가 수업을 만든 방법입니다. 여기처음으로 PHP로 클래스 만들기 OO

<?php 
class isEmailUnique{ 
    private $email; 
    include '../dbc/DBC.php'; 
    $collection = $db->members; 
    $ifEmailRaw = $collection->find(array('eMail' => $email)); 
    $ifEmail = $ifEmailRaw -> count(); 
    if($ifEmail > 0){ 
     return false; 
    } 
    else{ 
     return true; 
    } 
} 
?> 

내가 클래스를 사용하고 방법은 다음과 같습니다

Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting ',' or ';' in /var/www/partycloud.tv/public_html/php/test.php on line 5 

내 원하는 결과가 1 또는 0

를 반환 것이라고 :

여기
<?php 

include 'classes/checkEmailIsUnique.php'; 

echo isEmailUnique->'[email protected]'; 

?> 

내 오류입니다

나는 이것이 아마 아주 쉽다는 것을 안다, 나는 다만 그것을 건축하는 방법을 얻지 않는다, 나는 아주 곤란한 시간을 보내고있다 comprehendi 내가 읽은 기사 몇 개. 이걸로 어떤 도움이 굉장 할 것입니다! 이 시간을내어 읽어 주셔서 감사합니다!

+3

자습서를 따라 보셨습니까? 마치 당신이 추측하는 것처럼 보입니다. http://php.net/oop을 읽으십시오. – vascowhite

+0

특별한 문맥없이 클래스 정의에 얽힌 몇 가지 진술이 있습니다. 'private $ email;'를 제외하고, 그 밖의 모든 것은 클래스 메소드의 구색 안에 있습니다. 그러나 정확히 어디에서 성취하려고하는지에 달려 있습니다. –

답변

2

그건 수업이 작동하지 않습니다.

<?php 
    class EmailHelper { 
     private $db; 

     public function __construct() { 
      include '../dbc/DBC.php'; 
      $this->db = new DBC(); 
     } 

     public function IsUnique($email) { 
      $collection = $this->db->members; 
      $ifEmailRaw = $collection->find(array('eMail' => $email)); 
      $ifEmail = $ifEmailRaw->count(); 

      return ($ifEmail <= 0); 
     } 

     public function IsValid($email) { 
      /* Logic */ 
     } 

     public function IsFromDomain($email, $domain) { 
      /* Logic */ 
     } 
    } 

    $emailHelper = new EmailHelper(); 
    if ($emailHelper->IsUnique('[email protected]')) { 
     echo 'Unique!'; 
    } 
?> 
+0

다음은 '$ db'변수의 출처입니다. 이해하고 싶습니다. 왜 항상이 함수 '__construct()'가 있습니까? btw에 답해 주셔서 대단히 감사합니다! – user2287474

+1

@ user2287474'new Class();'를 사용하자마자'__construct'가 호출됩니다. 그런 다음 '$ this-> db' ('private $ db'를 참조)를'new DBC()'에 설정합니다 (또는 데이터베이스 객체를 생성합니다). 그리고'$ db' 변수를 참조하고자 할 때, 우리가 저장 한대로'$ this-> db'를 사용합니다. – h2ooooooo

+0

아무도 당신에게 설명하지 않는 것을보십시오. 완전한 이해가됩니다. 나는 약간의 설명이 필요했다. 정말 고맙습니다! 스택 오버플로가 5 분 동안 응답을 받아 들일 수 없으며 5시에 다시 보게 될 것입니다! – user2287474

1

사용자 정의 클래스와 함수의 (불법) 하이브리드의 종류 : 여기에 코드를 의 OOP 버전처럼 보일 수 있는지의 예입니다. 클래스 내에서 멤버 함수를 정의하는 방법을 찾으십시오. 힌트로, 오류가있는 행은 클래스가 이제 정의됨에 따라 다음과 같이 보일 것입니다.

echo isEmailUnique-> check ('[email protected] ');

... 여기서 check()는 정의한 멤버 함수입니다. 아마 당신은 다음과 같은 것을 의미합니다 :

echo whateverYourClassNameIs-> isEmailUnique ('[email protected] ');

... 현재 클래스 이름은 실제로 클래스 내의 함수 이름입니다. ...

+0

그래, 그게 내가 곤경에 처한 곳이야. 보통 함수를 사용 하겠지만'include '../dbc/DBC.php'와 같은 특정 것들을 캡슐화하기 때문에 클래스를 사용해야했지만 PHP로 실제로 사용하는 방법을 이해하지 못했습니다 . 당신의 답변에 감사드립니다! – user2287474