2011-01-11 3 views
0

안녕하세요
저는 PHP를 배우고 있으며 많은 다른 작은 프로젝트에서 많은 빈 함수를 보았습니다. 어떻게 도움이 될지 모르겠습니다.공백 함수가 PHP에서 우리를 도울 수있는 방법

예 :

public function first(){ 
// do nothing 
      } 
public function second(){ 
     // do nothing 
      } 
public function myfuntion(){ 
     // Codes 
      } 

또 다른 예 :
class user_bo{

protected $attributes = Array(); 

    public function __get($key){ 

     return array_key_exists($key, $this->attributes) ? $this->attributes[$key] : null; 
    } 

    public function __set($key, $value){ 

     $this->attributes[$key] = $value; 
    } 

    /** Constructor **/ 
    public function __construct(){ } 

} ?>

방법) (__construct는 아무것도하지 않는 것처럼 보일 때문에이 상황에서 우리에게 도움이 될 수 있는가?

+0

실례를 들어 주시겠습니까? – lonesomeday

+0

본 적이있는 리소스를 가리킬 수 있습니까? 질문은 약간의 맥락이 있습니다. –

+0

일반적으로 _examples_ $ – Shikiryu

답변

2

당신은 빈 기능, 더 릴리 당신은 예를 들어 약 __construct 마술 방법

그들이 우리가 작업의 허가를 결정하는 데 도움이 방법을 이야기보다

public class MyClass 
{ 
    private function __construct(){} 
} 

이 허용을 말할 때 우리는 new MyClass 호출을 차단하지만 정적 메서드를 호출하고 수행하여 재정의 할 수 있습니다. new self()

T 여기에 같은 허용 상속 등의 다른 이유가 같은, 또한 : 위의 2 급을보고

#Class 1 
public function Base 
{ 
    public function start() 
    { 
     echo "hello"; 
    } 
} 

#Class 2 
public function Layer extends Base 
{ 
} 

#Class 3 
public function Layer extends Base 
{ 
    private function start(){} 
} 

는 시작이라는 호출 방법을 포함하고 있지만, 클래스 3 같은에서 부모로부터 그 방법은 발생하지만 오버라이드 (override) 그 자체로 로컬 메서드에 의해 메소드의 호출을 허용하지 않는다.

OOP에 좀 더 깊숙이 들어가기 때문에 우리는 클래스에 알리는 인터페이스가 있습니다. 지정된 클래스가 있어야 인터페이스가 구현되므로 필요한 모든 메서드를 정의해야합니다. 그렇지 않으면 오류가 발생합니다 , 프로그래머는 클래스 구조를 유지하기 위해 빈 메서드를 만들 수 있습니다. 새 예에 비추어


는 그 다른 클래스를 확장 할 때 그렇다 빈 공공 __constructor에 대한 구체적인 이유가 없다. 이 구조에서 볼 수 있듯이 우리가 Main와 세 개의 하위 클래스라는 하나 개의 기본 클래스가

class Main 
{ 
    public function __construct() 
    { 
     echo "Main"; 
    } 
} 

class FirstSub extends Main 
{ 
} 

class SecondSub extends Main 
{ 
    public function __construct() 
    { 
     echo "SecondSub"; 
    } 
} 

class ThirdSub extends Main 
{ 
    public function __construct() 
    { 
     echo "ThirdSub <br />"; 
     parent::__construct(); 
    } 
} 

:

다음은 예입니다.

메인 클래스를 초기화하면 생성자 인 print Main이 생성되지만 결과는 생성자가 부모를 재정의하므로 하위 클래스에 따라 달라집니다.

때문에 발생합니다 다음을 initializeing :

  • 홈페이지 : Main
  • FirstSub :``- 아무것도
  • SecondSub : SecondSub
  • ThirdSub : 당신 같은 ThirdSub<br />Main

을 빈 구조를 사용하면 부모 클래스에 영향을 줄 수 있습니다.

+0

답변 해 주셔서 감사합니다.하지만 다른 예를 들어 plz – Fiasco

+0

아, 이해해 주셔서 감사합니다. – Fiasco

0

빈 기능은 아직 구현되지 않았으며 향후 기능 향상을 위해 자리 표시 자로 사용됩니다.

+0

공간은 실제로 제한되어 있지 않습니다. 별도의 릴리스 만 만들면됩니다. – RobertPitt

+0

그리고 구현하려는 몇 가지 메소드를 추가하고, 릴리스 한 다음, 구현하지 않기로 결정한 경우, 사용하지 않을 많은 쓰레기가있는 릴리스가 있습니다. 별도의 릴리스를 만들 것이라고 말했기 때문에 – RobertPitt

0

당신이 설명하려고 시도했는지는 확실하지 않지만 때로는 많은 사람들이 프로그램의 일반적인 윤곽을 코딩하는 데 도움이됩니다. 그리고 각 기능을 완료하고 코드화하기 만하면됩니다. 그들의 사고 방식을 차단하지 않을 것입니다.

해당 함수를 코딩해야한다는 것을 기억해야하지만 함수를 작성하지만 비워 두십시오. 물론 함수 이름은 'first', 'second'또는 'myfunction'보다 더 자세한 설명이 포함됩니다.

-1

안타깝게도 "PHP의 기능"에 대해 읽고 계신 것 같습니다. 그리고 여기에서 저자는 자신의 기능과 사용자 정의 기능을 정의하는 방법을 설명합니다.

<?php 
function foobar() { 
    echo "Foobar"; 
} 
?> 
+0

읽었습니까? OP? – RobertPitt

+0

Outch! 네가 옳아 ! – hlegius

관련 문제