2017-12-10 10 views
0

現在、私はPHPを学習していますが、問題が発生しました。別のファイルから定義されたPHPクラスが動作しない

イベントを作成し、その名前、日付、説明、価格を設定/取得できるクラスがあります。現在、 "class_lib.php"というファイルにあります。

<head> 
</head> 

<body> 

    <div id="content"> 
     <?php include 'class_lib.php'; ?> 
     <?php 
      $event = new Eventitem(); 
      $event->setName("Some Event"); 

      echo $event->getName(); 

     ?> 
    </div> 
</body> 

<footer> 
</footer> 

<?php 
class Eventitem 
{ 
    private $eventName; 
    private $eventDate; 
    private $eventDesc; 
    private $eventPrice; 

    function __construct() 
    { 
     $this->eventName = "BLANK"; 
     $this->eventDate = "January 1"; 
     $this->eventDesc = "..."; 
     $this->eventPrice = "$0.00"; 
    } 

    public function setName($name) 
    { 
     $this->eventName = $name; 
    } 

    public function getName() 
    { 
     return $this->eventName; 
    }  

    public function getDate() 
    { 
     return $this->eventDate; 
    } 

    public function getDesc() 
    { 
     return $this->eventDesc; 
    } 

    public function getPrice() 
    { 
     return $this->eventPrice; 
    } 
} 
?> 

さて、「blank.php」と呼ばれる私がテストベッドとして使用している他のファイルで、私はクラスを定義し、そののsetNameとのgetNameメソッドを使用しようとしました

ただし、実行すると何も表示されません。私は間違って何をしていますか?

+0

'' nclude'を 'require'に変更します。あなたのスクリプトは転倒しますか? – Scoots

+0

まだ空白です。あなたは転倒して何を意味しますか? –

+0

このクラスはコンパイルされません。インスタンスプロパティは、PHP 4では 'var'を使用して宣言されていましたが、PHP 5以降は[' public'、 'protected'や' private']を使って宣言しなければなりません(http://php.net/manual/en/language)。 oop5.visibility.php)。 'var'を削除してください。また、コンストラクタを含むすべてのメソッドの可視性を宣言することをお勧めします。デフォルトの可視性は 'public'ですので、コードでは必須ではなく、必要でもありませんが、一貫性を持ち、すべてのメソッドの可視性を宣言する方がよいでしょう。 – axiac

答えて

0

自分のコードをローカルホストにコピーして貼り付けても問題ありません。

enter image description here

あなたがここに持っていることは、あなたが使用しようとしているものは何でも、Webサーバーを経由してPHPスクリプトを実行している問題です。 <?php phpinfo(); ?>のようなPHPスクリプトを実行できることを確認してください。

+0

私はphpinfo()を含む私のWebサーバー(EasyPHP Webサーバー)を使って他のスクリプトを実行しました。問題を抱えているのはこのスクリプトだけです。 –

+0

UPDATE:修正されました。ちょっとした誤字。 –

関連する問題