-1

このクラスの作成には細心の注意を払いましたが、何が問題なのかわかりません。内部にコンテンツがない場合、コードは完全に実行されます。

class TemplateOne{

}

しかし、このコードを実行すると、壊れます。

<?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

4 に答える 4

4

$this->への通話に不在populateDataFromDataBaseです。

于 2012-04-30T16:13:17.347 に答える
3

エラーは次のとおりです。

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

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

于 2012-04-30T16:14:18.887 に答える
3

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

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

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

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

populateDataFromDataBase呼び出したい名前のグローバルスコープに別の関数がない限り$this->、コンストラクターで呼び出す前に追加する必要があります。

populateDataFromDataBase();
于 2012-04-30T16:15:21.173 に答える
1

私に関する限り、考えられる答えは1つだけです。PHPエラーを確認してくださいhttp://php.net/manual/en/function.error-reporting.php

少なくとも(開発のみで、本番環境でエラーを表示しないでください):

ini_set('display_errors', 1);
error_reporting(-1);
于 2012-04-30T16:18:46.237 に答える