2012-04-30 10 views
-1

私はこのクラスを作成するのに十分注意しましたが、何が間違っているのか分かりません。私は内部の任意のコンテンツを持っていない場合のコードは、完全にこのクラスをインクルードしたときにコードが実行されないPHP

class TemplateOne{ 

} 

を実行します。しかし、私はこのコードを実行したら、それはあなたがpopulateDataFromDataBaseまでお電話から$this->が欠落している、

<?php 

class TemplateOne { 

    //Properties 
    protected $_bgColor; 
    protected $_logoImagePath; 
    protected $_headerText; 
    protected $_leftContentHeader; 
    protected $_rightContentHeader; 
    protected $_leftContentBody; 
    protected $_rightContentBody; 
    protected $_footer; 
    protected $_mediaIframe; 
    protected $_mediaHeight = ''; 
    protected $_mediaWidth = ''; 

    //DB communication 
    public $DB; 

    //Constructor 
    public function __construct(){ 

     //Connect database in construct and close connection in destruct 

     $config = array(); 

     $config['host'] = 'localhost'; 
     $config['user'] = 'root'; 
     $config['pass'] = 'root'; 
     $config['database'] = 'fanpage_application'; 

     $this->DB = new DB($config); 

     //init variables 
     populateDataFromDataBase(); 
    } 

    //Functions 
    public function populateDataFromDataBase() { 

     //Get bgcolor 
     $this->DB->("SELECT backgroundimage FROM template_style_data WHERE styleid='#list_level'"); 
     $data = $this->DB->Get(); 
     foreach($data as $key => $value) 
     { 
      echo $value['backgroundimage']; 
     } 
    } 

    //Getters 
    public function getBgColor() 
    { 
     return $this->_bgColor; 
    } 

    public function getLogoImagePath() 
    { 
     return $this->_logoImagePath; 
    } 

    public function getHeaderText() 
    { 
     return $this->_headerText; 
    } 

    public function getLeftContentHeader() 
    { 
     return $this->_leftContentHeader; 
    } 

    public function getRightContentHeader() 
    { 
     return $this->_rightContentHeader; 
    } 

    public function getLeftContentBody() 
    { 
     return $this->_leftContentBody; 
    } 

    public function getRightContentBody() 
    { 
     return $this->_rightContentBody; 
    } 

    public function getFooter() 
    { 
     return $this->_footer; 
    } 

    public function getMediaIframe() 
    { 
     return $this->_mediaIframe; 
    } 

    //Setters 

    public function setBgColor($bgColor) 
    { 
     $this->_bgColor = $bgColor; 
    } 

    public function setLogoImagePath($logoImagePath) 
    { 
     $this->_logoImagePath = $logoImagePath; 
    } 

    public function setHeaderText($headerText) 
    { 
     $this->_headerText = $headerText; 
    } 

    public function setLeftContentHeader($leftContentHeader) 
    { 
     $this->_leftContentHeader = $leftContentHeader; 
    } 

    public function setRightContentHeader($rightContentHeader) 
    { 
     $this->_rightContentHeader = $rightContentHeader; 
    } 

    public function setLeftContentBody($leftContentHeader) 
    { 
     $this->_leftContentBody = $leftContentHeader; 
    } 

    public function setRightContentBody($rightContentBody) 
    { 
     $this->_rightContentBody = $rightContentBody; 
    } 

    public function setFooter($footer) 
    { 
     $this->_footer = $footer; 
    } 

    public function setMediaIframe($mediaIframe) 
    { 
     $this->_mediaIframe = $mediaIframe; 
    } 

} 

?> 
+4

コードが壊れていますか?物事がうまくいかないときは、コードを修正するのが最善の解決策です。 –

+1

"内部にコンテンツがないとコードは完璧に動作します"。なぜなら、コードがない場合、コードは正常に動作する傾向があります。 –

+0

@ÁlvaroG.Vicario、それは本当ですが、壊れているのを見つけようと努力しましたが...失敗しました...質問が適切でない場合は申し訳ありません... – doNotCheckMyBlog

答えて

3

DBクラスはどこから来ますか?正しいクラス定義ファイルがまだない場合は、includeにする必要があります。

$this->DB = new DB($config); 

以下は法的な構文ではありません。実際に関数を名前で呼び出す必要があります。

$this->DB->("SELECT backgroundimage FROM template_style_data WHERE styleid='#list_level'"); 

あなたが呼び出したいものですpopulateDataFromDataBaseという名前のグローバルスコープで別の機能を持っていない限り、あなたはあなたのコンストラクタで、それを呼び出そうとする前に$this->を追加する必要があります。

私の知る限り唯一の可能な答えがあり心配として
populateDataFromDataBase(); 
4

を破ります。

3

はここにあなたのエラーです:

$this->DB->("SELECT backgroundimage FROM template_style_data WHERE styleid='#list_level'"); 

これは有効な構文ではありません、あなたは$this->DB後メソッドを呼び出す必要があります。

+0

あなたは大歓迎です:-) –

関連する問題