予期せぬ構文エラーです。 ' PHPのOOP

2016-07-10 14 views
0

私は単純なプロジェクトに取り組んでおり、PHP Object Orientedを使用しています。基本的には、MySQLデータベースからデータを取得してページに表示する方法についての情報を含むクラスがあります。私は、予期せぬ構文エラーです。 ' PHPのOOP

<?php if ($dataSet->welcomeMessage()== 0){ 
    echo " 
      <li class='dropdown messages-menu'> 
        <!-- Menu toggle button --> 
        <a href='#' class='dropdown-toggle' data-toggle='dropdown'> 
         <i class='fa fa-envelope-o'></i> 
         <span class='label label-success'>1</span> 
        </a> 
        <ul class='dropdown-menu'> 
         <li class='header'>You have one new message</li> 
         <li> 
          <!-- inner menu: contains the messages --> 
          <ul class='menu'> 
           <li><!-- start message --> 
            <a href='message.php?msg=".$dataSet->msg();."'> 
             <div class='pull-left'> 
              <!-- User Image --> 
              <img src='dist/img/user2-160x160.jpg' class='img-circle' alt='User Image'> 
             </div> 
             <!-- Message title and timestamp --> 
             <h4> 
              Support Team 
             <small><i class='fa fa-clock-o'></i>Just now</small> 
             </h4> 
             <!-- The message --> 
             <p>Welcome to your admin panel</p> 
            </a> 
           </li> 
           <!-- end message --> 
          </ul> 
          <!-- /.menu --> 
         </li>"; 
    } 
?> 

しかし、私はそれを実行するたびにこのクラスはadmin.phpと呼ばれ、このように書きされています

<?php 
class Admin{ 
    private $db,$username,$password,$id,$group,$Datetime,$msg; 
    public function __construct() 
    { 
     $this->db = new Connection(); 
     $this->db = $this->db->dbConnect(); 
    } 
    public function getAdmin($name) 
    { 
     if(!empty($name)) 
     { 
      $adm = $this->db->prepare("select * from admins where username=?"); 
      $adm->bindParam(1,$name); 
      $adm->execute(); 
      while($row = $adm->fetch()) 
      { 
       $this->id  = $row['id']; 
       $this->username = $row['username']; 
       $this->password = $row['password']; 
       $this->group = $row['group']; 
       $this->Datetime = $row['date_joined']; 
       $this->msg  = $row['welcome_message']; 
      } 
     } 
    } 
    public function getID() 
    { 
     return $this->id; 
    } 
    public function getUsername() 
    { 
     return $this->username; 
    } 
    public function getPassword() 
    { 
     return $this->password; 
    } 
    public function getGroup() 
    { 
     return $this->group; 
    } 
    public function gtDate() 
    { 
     return $this->Datetime; 
    } 
    public function welcomeMessage() 
    { 
     return $this->msg; 
    } 
} 
?> 

はその後dashboard.phpと呼ばれる別のページに、私はこのクラスファイルを含めると、これをコード化していますこのエラーメッセージが表示されます。

構文エラー:予期しない '。'

dasboard.phpでライン15にここでdasboardファイルの15行目です:これは間違った連接に関連し、Iながら、HTMLタグ内にクラスメソッドを組み合わせなければならないことを

<a href='message.php?msg=".$dataSet->msg();."'> 

かなり確信してステートメントをエコーし​​ています。

これを行う正しい方法は何ですか?

+0

次に、致命的なエラーを返します。未定義のメソッドAdmin :: msg()を呼び出します。しかし、それはコード – drousiodrawr

+0

で見ることができるように正しく定義されています。定義されていないことがわかります。あなたは 'welcomeMessage()'というメソッドを呼びたいかもしれません。また、PHPの引用符でHTMLをエコーする理由は、単純なHTMLを出力するだけです。もう一つのこと:このクラスにはさまざまな責任のためのコードが含まれています。あなたはこれらの懸念を分離する必要があります。 – JasonK

+0

エラーは「;」です。また、 'msg'はメソッドではなくプライベートプロパティです。 –

答えて

0

"$ dataSet-> msg"は関数ではなくプロパティであり、このように呼び出す必要があります。

<a href='message.php?msg=".$dataSet->msg."'> // but wont work as it is private 

又は$dataSetが定義されていることsupooseせ、

<a href='message.php?msg=".$dataSet->welcomeMessage()."'> 
+0

また、 "welcomeMessage()== 0"、さらにエコーブロックでも "0"のままである場合にのみ、ifブロックに入っているこれらの呼び出しの罪は一切ありません –

0

[OK]を次の行のようにメソッド呼び出しを使用して、それが必要なすべてのメソッドを有します。次に、;を省略するだけです:

echo "some text " . $dataSet->msg() . " more text"; 
+0

したがって、私は "let letがある";) – michaJlS

関連する問題