2014-03-05 2 views
0

static에 대해 더 자세히 알고 싶습니다. 내가 거기에 약간의 정적 함수 내 클래스를 가지고있는 경우 :PHP 정적 함수, 쿼리 데이터베이스

<?php 
class Input { 
public function exists($type = 'post') { 
    switch($type) { 
     case 'post': 
      return (!empty($_POST)) ? true : false; 
     break; 
     case 'get': 
      return (!empty($_GET)) ? true : false; 
     break; 
     default: 
      return false; 
     break; 
    } 
} 

public static function get($item) { 
    if(isset($_POST[$item])) { 
     return $_POST[$item]; 
    } else if(isset($_GET[$item])) { 
     return $_GET[$item]; 
    } 
    return ''; 
} 
} 

spl_autoload_register 내가 입력 : 도착 ($ 항목)를 사용하여 기능에 액세스 할 수 있습니다; 정적이 아닌 함수를 사용하는 경우에는 $input = new Input();으로 인스턴스화해야하고 $ input-> exists();를 사용하여 함수에 액세스 할 수 있습니다.

그래서 차이는 없습니다. static 메서드에서 데이터베이스를 쿼리 할 수 ​​있습니까? __constructor이 효과가 있습니까?

온라인에서 명확한 답변을 찾을 수 없습니다.

+0

정말 여기에서 무엇을 묻고 있는지 확실하지 않습니다. 정적이라는 것이 무엇인지, 어떤 영향을 미치는지 모를 경우 매뉴얼에서 다음 내용을 읽으십시오. http://www.php.net/manual/en/language.oop5.static.php – CBroe

+0

이것은 정말로 기본적이고 너무 광범위한 주제에 대한 답을 얻을 수 있습니다. 몇 가지 문서를 읽어야합니다. 그래도 질문이 있으면 http://programmers.stackexchange.com/이 더 적절합니다. – DanMan

답변

0

정적 메서드는 특정 개체 인스턴스의 속성에 종속되지 않을 때 사용합니다. 비 정적 메서드는 개체의 속성을 참조해야 할 때 사용합니다.

모든 유형의 메소드에서 데이터베이스를 조회 할 수 있습니다. 선택은 수업 설계 방법에 달려 있습니다. 예를 들어, 각 객체가 다른 데이터베이스 연결 속성을 가질 수 있도록 클래스를 설계한다면 비 정적 메소드를 사용하여 객체 연결을 사용할 수 있도록 데이터베이스를 쿼리해야합니다. 그러나 연결이 클래스의 정적 속성 인 경우 정적 메서드로 연결할 수 있습니다.