2013-01-07 2 views
1
class Content extends CodonModule  { 

    public $title = 'Operations'; 
    public function operations()  { 

     $this->show('operations'); 

    } 

    public $title = 'Staff'; 
    public function staff()  { 

     $this->show('staff'); 

    } 

} 

모든 템플릿에 제목을 부여하려고하지만 클래스를 다시 선언 할 수 없습니다. 어떻게 이것을 무시할 수 있습니까? 함수 내에 public $ title을 넣으려고했지만 문서를 따르지 않고 작동하지 않습니다. 정의되지 않은 T_PUBLIC 오류가 발생합니다.PHP가 변수를 다시 선언 할 수 없습니다.

+0

변수 $ title ...을 (를) 선언하는 두 줄이 있습니다. 두 번째 줄은 $ title = 'Staff'만 말해야합니다. – AMayer

+0

모든 공용 함수에 이름을 지정하려고합니다. 본질적으로 public 함수는 HTML 코드가있는 템플릿을 보여줍니다. public $ title은 각 템플릿/페이지의 HTML 제목을 설정해야합니다. – zzwyb89

+3

'public $ title'을 한 번 선언하고 메소드에 값을 설정하십시오. 'operations()'내부에서'$ this-> title = 'operations ''을하십시오. 마찬가지로'staff()'에서 –

답변

4

Michael Berkowski의 의견에서 말했듯이, 함수 안에 제목을 설정하십시오. 그러면 함수가 호출 될 때 제목이 설정됩니다.

class Content extends CodonModule  { 

    public $title; 

    public function operations()  { 
     $this->title = 'Operations'; 
     $this->show('operations'); 

    } 

    public function staff()  { 
     $this->title = 'Staff'; 
     $this->show('staff'); 

    } 

} 
+0

나는 그의 설명에 혼란 스러웠다. 당신의 예가 나를 좋아하는 PHP 초보자에게 더 명확하게했다. 고마워. 내가 이해하지 못했거나 잘못 읽은 것은'public $ title '이었다. 나는 그것이 작동 할 수 있도록 정의가 필요하다고 생각했다. Michael Berkowski에게도 감사드립니다. – zzwyb89

3

이 파일은 여러 번 포함/필요합니다. 이 이름으로 정의 된 클래스는 1 개만 가질 수 있지만이 클래스의 인스턴스로 여러 개의 객체를 가질 수 있습니다.

+0

예, 수업이 만족합니다. 본질적으로 위의 PHP에서 개별 public $ title이있는/content/operations 및/content/staff와 같은 페이지를 표시해야합니다. 예를 들어 첫 번째 예의 public $ title = 'Operations'는 작업을 사이트에 반환해야합니다. 나는 클래스 재 선언 문제를 우회하는 방법을 궁금해하고있다. – zzwyb89

+1

클래스의 인스턴스를 다시 포함시키지 않습니다. $ title = new Content(); $ body = new Content(); $ footer = new Content(); 이게 니가 찾고있는거야? – AMayer

관련 문제